#include "stdafx.h"
#include
#include
//#include
#include
using namespace std;
void unio(list &la, list lb);
typedef list intlist;
int main()
{
intlist LA = {3,5,8,11};
intlist LB = { 2,6, 8, 9,11,15,20 };
unio(LA,LB);
intlist::iterator it;
for (it = LA.begin(); it != LA.end(); it++)
cout << *it << " " << endl;
system("pause");
return 0;
}
void unio(intlist &la, intlist lb)
{
auto la_len = la.size();
auto lb_len = lb.size();
intlist::iterator rit;
for (rit = lb.begin(); rit != lb.end();rit++)
{
intlist::iterator it = find(la.begin(),la.end(),rit);
if (!*it)
{
la.push_back(*rit);
}
}
}
错误 1 error C2678: 二进制“==”: 没有找到接受“int”类型的左操作数的运算符(或没有可接受的转换) c:program files (x86)microsoft visual studio 12.0vcincludexutility 3026 1 table
报了这样的错误,求大神解答
1、list容器是一个有模版参数的类,所以定义的时候需要加上模版参数,
2 , if (!*it)
{
la.push_back(*rit);
}
find()函数的返回值是找到的值,如果没有找到的话就是容器的结尾:end()。
因此改为
if(it!=la.end())
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。