4

我的应用程序中有一个 C++ STL 对象列表,它是在启动时构建的,之后从未更改过;指向同一个列表节点的两个独立迭代器是否总是比较相等?

4

2 回答 2

10

是的。前向迭代器的要求之一是:

C++11 22.4.5/6:如果ab都是可解引用的,那么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,请参阅:

http://en.cppreference.com/w/cpp/concept/InputIterator

于 2012-11-16T13:10:19.713 回答