vns是一个vector<int>
我的程序中有:
vector<int>::const_iterator iter;
.....
iter=find(vns.begin(),vns.end(),n);
然后,把iter!=vns.end()或iter==vns.end()当作条件判断时,就会出错:
expression: vector iterators incompatible
这是怎么回事?find函数找不到时不是返回end()吗?这样判断找没找到不对吗
c++stl中find()函数的问题
答案:1 悬赏:40
解决时间 2021-11-17 04:17
- 提问者网友:霸气大叔
- 2021-11-16 19:15
最佳答案
- 二级知识专家网友:两不相欠
- 2021-11-16 20:07
是返回end()但是你的错误是由于iterators 类型不匹配造成的。
iter是一个const_iterator迭代器。
但是vns.end()返回的是一个
普通的
iterator迭代器,所以造成错误。
你把vector<int>::const_iterator iter;
改成
vector<int>::iterator iter;
就不会出错了。
有问题可以hi我。
iter是一个const_iterator迭代器。
但是vns.end()返回的是一个
普通的
iterator迭代器,所以造成错误。
你把vector<int>::const_iterator iter;
改成
vector<int>::iterator iter;
就不会出错了。
有问题可以hi我。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯