【问题标题】:compare C++ STL list iterators比较 C++ STL 列表迭代器
【发布时间】:2012-11-05 05:11:51
【问题描述】:

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

【问题讨论】:

    标签: c++ list stl


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      是的,根据 cplusplus.com:

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

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

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


      cppreference.com 同意并声明不止于此,即所有 InputIterators(可以从中读取)都是 EqualityComparable,请参阅:

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

      【讨论】:

        猜你喜欢
        • 2018-05-31
        • 1970-01-01
        • 1970-01-01
        • 2011-07-19
        • 2018-10-19
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        • 2021-12-01
        相关资源
        最近更新 更多