迭代器使用-Lint警告
Iterator usage - Lint warning
我不熟悉迭代器的用法。我使用了下面的代码,其中我使用迭代器解析列表中的所有元素,以确定该元素是否存在于列表中。
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'
以上警告是什么意思?运算符重载的实现之间是否存在冲突!=列表和迭代器中的运算符?
它的意思正是它所说的。列表迭代器是pair
,pair
有operator!=
函数,但列表迭代程序类也有自己的operator!=
函数。由于两个操作符做的事情完全相同(因为在第一个元素上匹配的任何两个对在第二个元素上也匹配),因此可以安全地忽略警告。
相关文章:
- 警告处理为错误这里有什么问题
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- cppcheck在const std::string[]上引发警告
- GCC对可能有效的代码抛出init list生存期警告
- 如何在BST的这个简单递归实现中消除警告
- 关于std::move的使用,是否有编译警告
- g++ 在某个类成员未初始化时不发出警告
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 使用typeid警告未使用的变量
- 示例C++项目编译中的警告
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 如何修复编译器警告 C6386 和 C6385?
- 返回语句后的代码,没有警告
- 获取隐式转换溢出从无符号到已签名的警告
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 在未链接的部分上生成警告
- FlexeLint/PC lint警告说,不考虑std::string::append的返回值
- 迭代器使用-Lint警告
- 使用std::unary_function时发出Lint警告
- Lint警告559的问题