c ++ std库如何实现,例如,矢量迭代器?它允许您在常规迭代器和反向迭代器上进行相等测试,哪种设计允许这样做?
编辑:所以下面有人回复了实际的重载==方法的代码,这不是我正在寻找的,所以也许这个问题的范围不明确。我的意思是“std库如何实现矢量迭代器”更多的是迭代器类使用什么样的继承树的设计级问题,这样做的设计权衡是什么,其他替代设计,如果有人能够对此有所了解,那就太棒了。
答案 0 :(得分:2)
这来自<vector>
:
bool operator==(const _Myiter& _Right) const
{ // test for iterator equality
_Compat(_Right);
return (this->_Ptr == _Right._Ptr);
}
迭代器包含指针_Ptr
作为成员。这是所有迭代器的典型特征。它们是对集合的引用的包装。