我的应用程序中有一个 C++ STL 对象列表,它是在启动时构建的,之后从未更改过;指向同一个列表节点的两个独立迭代器是否总是比较相等?
问问题
1534 次
2 回答
10
是的。前向迭代器的要求之一是:
C++11 22.4.5/6:如果
a
和b
都是可解引用的,那么a == b
当且仅当*a
和*b
绑定到同一个对象。
标准容器上的所有迭代器(至少)都是前向迭代器。
于 2012-11-16T13:12:44.287 回答
2
是的,根据 cplusplus.com:
http://www.cplusplus.com/reference/std/iterator/ForwardIterator/
接受平等/不平等比较。
相等的迭代器意味着指向相同的元素
(我不是这个网站的粉丝,但我相信它在这里。)
cppreference.com 同意并声明更多,即所有 InputIterators(可以从中读取)都是 EqualityComparable,请参阅:
于 2012-11-16T13:10:19.713 回答