比较C ++ STL列表迭代器

时间:2012-11-16 13:06:32

标签: c++ list stl

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

2 个答案:

答案 0 :(得分:10)

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

  

C ++ 11 22.4.5 / 6:如果ab都可以取消引用,那么a == b当且仅当*a*b绑定到同一个对象。

标准容器上的所有迭代器都是(至少)前向迭代器。

答案 1 :(得分:2)

是的,根据cplusplus.com:

http://www.cplusplus.com/reference/std/iterator/ForwardIterator/

  

接受平等/不平等比较   等于迭代器意味着指向相同的元素

(我不是这个网站的粉丝,但我相信它。)


cppreference.com同意并说明不止于此,即所有InputIterators(可以读取)均为EqualityComparable,请参阅:

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