迭代器使用 - Lint 警告
我对迭代器的使用很陌生。我使用了下面的代码,其中使用迭代器解析列表中的所有元素,以确定该元素是否存在于列表中。
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 警告:
Info 1702: operator 'operator!=' is Both a common function 'operator!=(constpair<<1>,<2>> &, const 对<<1>,<2>&)' 和一个成员函数'list::const_iterator::operator!=(const const_iterator &) const'
上述警告是什么意思?列表中 != 运算符的运算符重载实现与迭代器之间是否存在冲突?
I am new to the usage of iterators. I have used the below code, where I parse through all the elements in the list using iterator, to determine whether the element exists in the list or not.
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;
}
}
The code works fine, but I am getting the below Lint warning:
Info 1702: operator 'operator!=' is both an ordinary function 'operator!=(const pair<<1>,<2>> &, const pair<<1>,<2>> &)' and a member function 'list::const_iterator::operator!=(const const_iterator &) const'
What does the above warning mean? Is it conflict between operator overloading implementation of != operator in list and iterator?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它的意思正是它所说的。列表迭代器是一个
pair
,并且pair
有一个operator!=
函数,但是列表迭代器类也有自己的operator! = 函数。由于两个运算符执行完全相同的操作(因为与第一个元素匹配的任何两对也与第二个元素匹配),因此您可以安全地忽略该警告。
It means precisely what it says. The list iterator is a
pair
andpair
has anoperator!=
function, but the list iterator class also has its ownoperator!=
function. Since both operators do precisely the same thing (because any two pairs that match on the first element match on the second as well), you can safely ignore the warning.