Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;迭代器运算符定义_C++_Iterator_Overloading_Operator Keyword - Fatal编程技术网

C++ C++;迭代器运算符定义

C++ C++;迭代器运算符定义,c++,iterator,overloading,operator-keyword,C++,Iterator,Overloading,Operator Keyword,关于迭代器操作符如何工作的“定义”有什么想法或链接吗?更确切地说:例如,操作符“==”和“!=”必须如何实现——它们必须比较它们所持有的数据的成员吗(这是一个问题,因为迭代器首先不应该知道数据)?与.end()和.start()相比如何?对于指针迭代器:它只是地址检查吗 我很高兴听到您的想法或获得有关定义的链接。我认为您需要阅读以下内容: 运算符==和=比较迭代器,而不是它们引用的数据。我认为您需要阅读以下内容: 运算符==和=比较迭代器,而不是迭代器引用的数据。the==和!=操作符不需要比较

关于迭代器操作符如何工作的“定义”有什么想法或链接吗?更确切地说:例如,操作符“==”和“!=”必须如何实现——它们必须比较它们所持有的数据的成员吗(这是一个问题,因为迭代器首先不应该知道数据)?与.end()和.start()相比如何?对于指针迭代器:它只是地址检查吗


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

我认为您需要阅读以下内容:


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

我认为您需要阅读以下内容:


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

the==和!=操作符不需要比较内容,它们只是检查两个迭代器是否引用同一个对象。

the==and!=操作符不需要比较内容,它们只检查两个迭代器是否引用同一个对象。

原始STL有一个

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

begin()
rbegin()
相比应该微不足道;与
end()
rend()
相比,可以通过多种方式进行比较,例如使其成为与容器的
size()
相等的索引。

原始STL具有

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


begin()
rbegin()
相比应该微不足道;与
end()
rend()
相比,可以通过多种方式进行比较,比如将其作为与容器的
size()
相等的索引。

太好了,这正是我所希望和期望的。谢谢你的链接。我与一位同事发生了争执,他实现了自己的迭代器嵌套类并比较了数据,这导致了在与.end()或类似对象进行比较时出现了严重问题。太好了,这正是我所希望的,也是我所期望的。谢谢你的链接。我与一位同事发生了争执,他实现了自己的迭代器嵌套类并比较了数据,这导致了在与.end()或类似对象进行比较时出现了严重问题。这正是我所希望的,见上文。这就是我所希望的,见上图。泰克斯寻求答案。