我是迭代器的新手。我使用了下面的代码,我使用迭代器解析列表中的所有元素,以确定元素是否存在于列表中。
list<int> pendingRsp;
list<int>::iterator it1;
for(int i = 1; i <= 5; i++)
pendingRsp.push_back(i *10);
for(it1 = pendingRsp.begin(); it1 != pendingRsp.end(); it1++)
{
if((*it1) == 50)
{
found = true;
break;
}
}
代码工作正常,但我收到以下Lint警告:
信息1702:运算符'运算符!='既是普通函数'运算符!=(const对&lt;&lt; 1&gt;,&lt;&gt;&gt;&amp;,const对&lt;&lt;&lt;&gt;,&lt;&gt;&gt; ;&gt;&amp;)'和成员函数'list :: const_iterator :: operator!=(const const_iterator&amp;)const'
上述警告是什么意思?在列表中的运算符重载!=运算符和迭代器之间是否存在冲突?
答案 0 :(得分:3)
这正是它所说的。列表迭代器是pair
,pair
具有operator!=
函数,但列表迭代器类也有自己的operator!=
函数。由于两个运算符完全相同(因为在第一个元素上匹配的任何两个对也在第二个元素上匹配),您可以放心地忽略该警告。