迭代器使用-Lint警告

Iterator usage - Lint warning

本文关键字:警告 -Lint 迭代器      更新时间:2023-10-16

我不熟悉迭代器的用法。我使用了下面的代码,其中我使用迭代器解析列表中的所有元素,以确定该元素是否存在于列表中。

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:运算符'operator!='既是一个普通函数的运算符=(const pair<<1>,<2>>&,const pair<1<1>,<2>&)'和成员函数'list::const_iterator::operator=(const const_iterator&)const'

以上警告是什么意思?运算符重载的实现之间是否存在冲突!=列表和迭代器中的运算符?

它的意思正是它所说的。列表迭代器是pairpairoperator!=函数,但列表迭代程序类也有自己的operator!=函数。由于两个操作符做的事情完全相同(因为在第一个元素上匹配的任何两个对在第二个元素上也匹配),因此可以安全地忽略警告。