模板类的问题,高手留步,谢谢

pusshi 2009-01-06 11:49:20
以下我写的模板类,但编译不通过,谁知道错哪了,怎么改
//#ifndef BAG_H
//#define BAG_H

//背包类,由一个map记录武器名字和个数,vector记录武器属性;
#include <iostream>
#include <string>
#include <vector>
#include <map>
//#include "F:\msdosd\gs\head\key.h"
using namespace std;
//typedef vector<Key> mups;
//typedef map<string,int> mup;
template <class T>
class Bag//背包类
{
public:
Bag(){ }

bool del_bag(T& res);

//void add_bag(T res);

//bool emptybag(){return _bao.empty();}

// void display_bag(bool shop=true);

vector<T> _baosu;//武器属性;
map<string, int> _bao ;//武器名字和个数


};

template <class T>
bool Bag<T> ::del_bag(T& res)
{
vector<T>::iterator its= _baosu.begin();
map<string, int>::iterator it;
it=_bao.find(res.first);
if( (it != _bao.end()) && (it->second >1) )
{
it->second--;
return true;
}

if( (it != _bao.end()) && (it->second =1) )
{
for(; its != _baosu.end(); its++)
{
if( its->first == res.first)
{
_baosu.erase(its);
_bao.erase(it);
return true;
}
}


}
return false;
}

/*void Bag::add_bag(T res)
{
map<string, int>::iterator it=_bao.begin();
it=_bao.find(res.first);
if(it != _bao.end())
{
it->second++;
}
else
{
_bao.insert(make_pair(res.first, 1));
_baosu.push_back(res);

}
}

void Bag::display_bag(bool shop)
{
map<string, int>::iterator it=_bao.begin();
vector<T>::iterator its=_baosu.begin();
if(shop)
{

for(; it != _bao.end(); ++it)
{
cout<<it->first<<"\t数量:"<<it->second;
for(its=_baosu.begin(); its != _baosu.end();its++)
{
if(its->first == it->first)
{
cout<<"\t攻:"<<its->second<<"\t";
}
}
}
cout<<endl;
}
else
{
for(; it != _bao.end(); ++it)
{
cout<<it->first<<"\t数量:"<<it->second;
for(its=_baosu.begin(); its != _baosu.end();its++)
{
if(its->first == it->first)
{
cout<<"\t攻:"<<its->second<<"\t钱:"<<(it->second)*(its->money)<<"\t";
}
}
}
cout<<endl;
}

}*/


//#endif
/*int main()
{
T st1("华山剑", 13, 50);
T st2("华山刀", 12, 45);
Bag s;
s.add_bag(st1);
s.add_bag(st1);
s.add_bag(st2);
s.del_bag(st1);
s.display_bag();
s.display_bag(true);//查看背包里的东西
s.display_bag(false);//卖背包里的东西
while(1);
return 0;
}*/

...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pusshi 2009-01-06
  • 打赏
  • 举报
回复
dddddddddddddddddddddddddddd
pusshi 2009-01-06
  • 打赏
  • 举报
回复
Dev-C++的,
谁知道怎么回事.
OenAuth.Net 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 anglecloudy 的回复:]
少了几个template <class T>,改了,编译通过,不过

T st1("华山剑", 13, 50); //是什么??


C/C++ code
//背包类,由一个map记录武器名字和个数,vector记录武器属性;
#include <iostream>
#include <string>
#include <vector>
#include <map>
//#include "F:\msdosd\gs\head\key.h"
using namespace std;
//typedef vector<Key> mups;
//typedef map<string,int> mup;
template <class T>
class Bag//背…
[/Quote]


LZ用的什么编译器?我在VC6.0 GCC上编译都通过了。
我在1楼的代码
waizqfor 2009-01-06
  • 打赏
  • 举报
回复
UP了
pusshi 2009-01-06
  • 打赏
  • 举报
回复
78 F:\msdosd\gs\未命名1.cpp expected `;' before "its"
85 F:\msdosd\gs\未命名1.cpp `its' undeclared (first use this function)
还是不对呀,还是出现以上错识
OenAuth.Net 2009-01-06
  • 打赏
  • 举报
回复
少了几个template<class T>,改了,编译通过,不过

T st1("华山剑", 13, 50); //是什么??


//背包类,由一个map记录武器名字和个数,vector记录武器属性;
#include <iostream>
#include <string>
#include <vector>
#include <map>
//#include "F:\msdosd\gs\head\key.h"
using namespace std;
//typedef vector<Key> mups;
//typedef map<string,int> mup;
template <class T>
class Bag//背包类
{
public:
Bag(){ }

bool del_bag(T& res);

void add_bag(T res);

bool emptybag(){return _bao.empty();}

void display_bag(bool shop=true);

vector<T> _baosu;//武器属性;
map<string, int> _bao ;//武器名字和个数


};

template <class T>
bool Bag<T> ::del_bag(T& res)
{
vector<T>::iterator its= _baosu.begin();
map<string, int>::iterator it;
it=_bao.find(res.first);
if( (it != _bao.end()) && (it->second >1) )
{
it->second--;
return true;
}

if( (it != _bao.end()) && (it->second =1) )
{
for(; its != _baosu.end(); its++)
{
if( its->first == res.first)
{
_baosu.erase(its);
_bao.erase(it);
return true;
}
}


}
return false;
}
template <class T>
void Bag<T>::add_bag(T res)
{
map<string, int>::iterator it=_bao.begin();
it=_bao.find(res.first);
if(it != _bao.end())
{
it->second++;
}
else
{
_bao.insert(make_pair(res.first, 1));
_baosu.push_back(res);

}
}
template <class T>
void Bag<T>::display_bag(bool shop)
{
map<string, int>::iterator it=_bao.begin();
vector<T>::iterator its=_baosu.begin();
if(shop)
{

for(; it != _bao.end(); ++it)
{
cout<<it->first<<"\t数量:"<<it->second;
for(its=_baosu.begin(); its != _baosu.end();its++)
{
if(its->first == it->first)
{
cout<<"\t攻:"<<its->second<<"\t";
}
}
}
cout<<endl;
}
else
{
for(; it != _bao.end(); ++it)
{
cout<<it->first<<"\t数量:"<<it->second;
for(its=_baosu.begin(); its != _baosu.end();its++)
{
if(its->first == it->first)
{
cout<<"\t攻:"<<its->second<<"\t钱:"<<(it->second)*(its->money)<<"\t";
}
}
}
cout<<endl;
}

}

int main()
{
/* T st1("华山剑", 13, 50); //是什么??
T st2("华山刀", 12, 45);
Bag s;
s.add_bag(st1);
s.add_bag(st1);
s.add_bag(st2);
s.del_bag(st1);
s.display_bag();
s.display_bag(true);//查看背包里的东西
s.display_bag(false);//卖背包里的东西
while(1);
*/
return 0;
}



hhyttppd 2009-01-06
  • 打赏
  • 举报
回复
未注释的部分?
xiaoyisnail 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 pusshi 的回复:]
dddddddddddddddddddddddddddd
[/Quote]

dev-cpp里要加上typename显示告诉编译器后面的是类型


//背包类,由一个map记录武器名字和个数,vector记录武器属性;
#include <iostream>
#include <string>
#include <vector>
#include <map>
//#include "F:\msdosd\gs\head\key.h"
using namespace std;
//typedef vector<Key> mups;
//typedef map<string,int> mup;
template <class T>
class Bag//背包类
{
public:
Bag(){ }

bool del_bag(T& res);

void add_bag(T res);

bool emptybag(){return _bao.empty();}

void display_bag(bool shop=true);

vector<T> _baosu;//武器属性;
map<string, int> _bao ;//武器名字和个数


};

template <class T>
bool Bag<T> ::del_bag(T& res)
{
typename vector<T>::iterator its= _baosu.begin();
map<string, int>::iterator it;
it=_bao.find(res.first);
if( (it != _bao.end()) && (it->second >1) )
{
it->second--;
return true;
}

if( (it != _bao.end()) && (it->second =1) )
{
for(; its != _baosu.end(); its++)
{
if( its->first == res.first)
{
_baosu.erase(its);
_bao.erase(it);
return true;
}
}


}
return false;
}
template <class T>
void Bag<T>::add_bag(T res)
{
typename map<string, int>::iterator it=_bao.begin();
it=_bao.find(res.first);
if(it != _bao.end())
{
it->second++;
}
else
{
_bao.insert(make_pair(res.first, 1));
_baosu.push_back(res);

}
}
template <class T>
void Bag<T>::display_bag(bool shop)
{
typename map<string, int>::iterator it=_bao.begin();
typename vector<T>::iterator its=_baosu.begin();
if(shop)
{

for(; it != _bao.end(); ++it)
{
cout<<it->first<<"\t数量:"<<it->second;
for(its=_baosu.begin(); its != _baosu.end();its++)
{
if(its->first == it->first)
{
cout<<"\t攻:"<<its->second<<"\t";
}
}
}
cout<<endl;
}
else
{
for(; it != _bao.end(); ++it)
{
cout<<it->first<<"\t数量:"<<it->second;
for(its=_baosu.begin(); its != _baosu.end();its++)
{
if(its->first == it->first)
{
cout<<"\t攻:"<<its->second<<"\t钱:"<<(it->second)*(its->money)<<"\t";
}
}
}
cout<<endl;
}

}

int main()
{
/* T st1("华山剑", 13, 50); //是什么??
T st2("华山刀", 12, 45);
Bag s;
s.add_bag(st1);
s.add_bag(st1);
s.add_bag(st2);
s.del_bag(st1);
s.display_bag();
s.display_bag(true);//查看背包里的东西
s.display_bag(false);//卖背包里的东西
while(1);
*/
return 0;
}
内容概要:本文研究了一种基于遗传算法的新型异构分布式系统任务调度算法,旨在解决异构计算环境中任务分配与调度的复杂优化问题。通过Matlab代码实现该算法,充分利用遗传算法强大的全局搜索能力和鲁棒性,对任务执行时间、资源利用率、系统负载均衡等关键性能指标进行综合优化,有效提升分布式系统的整体运行效率与稳定性。研究详细阐述了算法的整体架构设计、染色体编码策略、适应度函数构造、选择机制以及交叉与变异等遗传操作的实现细节,并通过大量仿真实验验证了所提出算法相较于传统调度方法在收敛速度、解的质量和调度性能方面的显著优越性。; 适合人群:具备一定编程基础和优化算法理论知识,从事分布式计算、高性能计算、云计算资源调度或智能优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于高性能计算、云计算、边缘计算等异构计算平台中的任务调度优化,提升资源利用效率;②为研究人员提供遗传算法在复杂组合优化问题中应用的完整实现案例,深化对智能优化算法设计原理与仿真实践的理解; 阅读建议:建议读者结合提供的Matlab代码深入研读,重点理解适应度函数的设计逻辑与遗传算子的参数调优策略,并可通过更换不同的任务集和系统模型来测试算法的泛化能力与鲁棒性。
参考李林凤等(2025)一文关于农村劳动力人均受教育年限指标的构建与计算方法,整理了中国31个省份总体、分性别的农村人均受教育年限数据,具体计算方法如下: 农村劳动力人均受教育年限 = (农村未上过学人数 × 1+小学学历人数 × 6+初中学历人数 × 9+高中和中专学历人数 ×12+大专及以上学历人数 × 16)/农村6岁及以上总人口 相关数据:各地区、分性别人均受教育年限数据 一、数据介绍 数据名称:中国各省农村人均受教育年限 数据范围:全国31个省份 时间范围:2006-2024年 样本数量:590条 数据来源:《中国人口和就业统计年鉴》、《中国劳动统计年鉴》 二、数据指标 年份 省份 省份代码 农村人均受教育年限 男性-农村人均受教育年限 女性-农村人均受教育年限 6岁及以上人口 6岁及以上人口_男 6岁及以上人口_女 未上过学人口 未上过学人口_男 未上过学人口_女 小学人口 小学人口_男 小学人口_女 初中人口 初中人口_男 初中人口_女 高中人口 高中人口_男 高中人口_女 大专及以上人口 大专及以上人口_男 大专及以上人口_女 三、参考文献 [1]李林凤,刘杨,杨亦民.种业创新驱动农村产业融合的作用机制与空间分异效应[J].广东财经大学学报,2025,40(6):97-109. [2]徐小阳,李洁,金丽馥.普惠金融对农村教育贫困的纾解效应[J].中国农村经济,2020,(9):41-64.

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧