关于迭代器运算符必须如何工作的“定义”的任何想法或链接? 更确切地说:例如,必须如何实施运算符“ ==”和“!=” -它们是否必须比较所保存数据的成员(作为迭代器,这是个大问题)首先不应该知道数据? 您如何比较.end()和.start()? 对于指针迭代器:这仅仅是地址检查吗?

很高兴听到您的想法或获得该定义的链接。

===============>>#1 票数:4

我认为您需要阅读以下内容: http : //stdcxx.apache.org/doc/stdlibref/iterators.html

运算符==!=比较迭代器,而不是它们引用的数据。

===============>>#2 票数:1 已采纳

原始的STL 在迭代器上有一个设计文档

简而言之,它们是指针的概括,因此==应该检查两个迭代器是否指向同一容器中的同一项目。 指针迭代器确实应该在它们的指针相等时进行比较。

begin()rbegin()应该是微不足道的; end()rend()可以通过多种方式完成,例如使其索引等于容器的size()

===============>>#3 票数:0

不希望==和!=运算符比较内容,它们仅检查两个迭代器是否引用同一对象。

  ask by gilgamash translate from so

未解决问题?本站智能推荐: