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