C ++迭代器相等

时间:2016-02-18 20:09:53

标签: c++ design-patterns c++-standard-library

c ++ std库如何实现,例如,矢量迭代器?它允许您在常规迭代器和反向迭代器上进行相等测试,哪种设计允许这样做?

编辑:所以下面有人回复了实际的重载==方法的代码,这不是我正在寻找的,所以也许这个问题的范围不明确。我的意思是“std库如何实现矢量迭代器”更多的是迭代器类使用什么样的继承树的设计级问题,这样做的设计权衡是什么,其他替代设计,如果有人能够对此有所了解,那就太棒了。

1 个答案:

答案 0 :(得分:2)

这来自<vector>

bool operator==(const _Myiter& _Right) const
    {   // test for iterator equality
        _Compat(_Right);
         return (this->_Ptr == _Right._Ptr);
    }

迭代器包含指针_Ptr作为成员。这是所有迭代器的典型特征。它们是对集合的引用的包装。