2 sinat 25885723 sinat_25885723 于 2015.06.08 13:10 提问

c++,list里面内容,不知错在哪里,求解答 5C

#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.0\vc\include\xutility 3026 1 table
报了这样的错误,求大神解答

5个回答

yangbo50304
yangbo50304   2015.06.08 13:30

if (!*it)
{
la.push_back(*rit);
}


这句错了,*it是个int型的,所以不能做bool的判断,修改成
if(it!=la.end())


liqiongfan
liqiongfan   2015.06.08 15:17

#include
#include
using namespace std;

typedef list intlist;
void unio(intlist &la, intlist lb);

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)
{
intlist::iterator rit;
for (rit = lb.begin(); rit != lb.end(); rit++)
{
intlist::iterator it = find(la.begin(), la.end(), *rit);
if (it == la.end())
{
la.push_back(*rit);
}
}
}

1、list容器是一个有模版参数的类,所以定义的时候需要加上模版参数,
list 而不是type list intlist,必须是:
type list intlist
2、find()函数的返回值是找到的值,如果没有找到的话就是容器的结尾:end()。
因此
if(!*it){
}
应该更改为:
if(it == la.end()){
la.push_back(*rit);
}


monaso
monaso   2015.06.08 15:44

1、list容器是一个有模版参数的类,所以定义的时候需要加上模版参数,
2 , if (!*it)
{
la.push_back(*rit);
}

find()函数的返回值是找到的值,如果没有找到的话就是容器的结尾:end()。
因此改为
if(it!=la.end())

fcxxxer
fcxxxer   2015.06.08 23:56

将if (!*it)改成if(it!=la.end())就可以了,it是迭代类型(iterator)

datou431
datou431   Rxr 2015.06.09 16:13

if (!*it)改成if(it!=la.end())

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
无情刀永不知错,无缘分只叹奈何
小李飞刀 作词:卢国沾 作曲:顾嘉辉 演唱:罗文 难得一身本领 情关始终闯不过 闯不过柔情蜜意 乱挥刀剑无结果 流水滔滔斩不断 情丝百结冲不破 刀锋冷热情未冷 心底更是难过 无情刀永不知错 无缘份只叹奈何 面对死不会惊怕 离别心凄楚 人生几许失意 何必偏偏选中我 挥刀剑断盟约 相识注定成大错 无情刀永不知错 无缘份只叹奈何 面对死不会惊
colorstatus程序,不知错在哪里
斯蒂芬地方施迪峰阿萨德施迪峰四大国多少速度发生的四大国
老大发火骂人,不知错在哪里
         昨早老大和老板谈了许久,最后经理回到屋向我们喷了一句狠话,隔了一会儿又说“小X以后别瞎整啊”,一句话让我迷糊了一天,语气很重,吓得我只“嗯”了一声就不敢再说话了,生怕说错了又被“收拾”。         现在感觉的感觉是“做人比做事儿难啊”,事儿可以慢慢做,但是做人要是一步走错了就不可挽回了,今天就是这个样子。可是问题是我到现在还想不起来我究竟是哪里做错了,这很严重
例程调试出错,不知错哪里??
先贴上代码: #include "cv.h" #include "highgui.h" IplImage* doPyrDown(IplImage* img_in,int filter=IPL_GAUSSIAN_5x5) {     assert(img_in->height%2==0 && img_in->width%2==0);     IplImage* img_out=cvC
冥王猎爱.
楔子  “小姐,老爷请您到大厅一趟,”丫环碧珠走入花园,向正在玩毽子的主人禀报。  一身浅绿宫装梳着双髻的美丽少女闻言停下游戏,白玉小手俐落接住了由七彩羽毛制成的毽子,她睁着一双美眸,略喘着气:“爹找我?什么事啊?”  “小姐,是好事呢,郎公子送了样大礼来恭贺小姐及笄,老爷请小姐去看看喜不喜欢。”碧珠笑着回答。  “哦,原来是郎大哥来了,他送什么大礼给我啊?”如黄莺出谷般的声音带着
UVa10494不知错哪,求赐教
 错解 #include #include using namespace std; char b[1000010],d[1000010]; int main() {  freopen("C:\\Users\\John\\Desktop\\hi.txt","r",stdin);  int a,i,j;  char sign;  while(cin>>b>>sign>>a)
打印出 List<Product> 中的内容
List List 中放的是一个Product类,包含Name,NO public static void main(String[] args) { List prods = new ArrayList(); // 1. 使用 for Product prod = null; for (
leetcode206题 题解 翻译 C语言版 Python版
206. Reverse Linked List Reverse a singly linked list. click to show more hints. Hint: A linked list can be reversed either iteratively or recursively. Could you implement both? 206.倒置一个链
获取两个list的交集和两个list中双方分别不包含的集合
/** *Copyright 2017 Yonyou Corporation Ltd. All Rights Reserved. * This software is published under the terms of the Yonyou Software * License version 1.0, a copy of which has been included with this
c-view(c语言新生用)
c-view新生用,建议学过c语言的不要用,里面内容是基础课的内容