gpt4 book ai didi

c++ - 为什么双向/正向运算符不支持不等式关系运算符?

转载 作者:行者123 更新时间:2023-12-02 10:14:01 27 4
gpt4 key购买 nike

我目前正在学习迭代器类型,有些事情我还是不太了解。首先,据我了解,迭代器类型是类似于指针的类型,这意味着它们可以指向容器中的任何元素,并且还可以执行算术运算(如指针)。似乎随机访问迭代器类型也支持不等式关系运算符,我认为这意味着我们可以比较两个迭代器(如果有人对此有所了解,则意味着什么)。但是,为什么不能对正向和双向迭代器类型执行此操作?我的意思是,相等运算符为它们定义得很好。所谓不等式关系运算符,是指以下运算符<=, <, >, >=
编辑:我没有具体的例子,但是我在cplusplus.com上看到了
enter image description here

最佳答案

Why does bi-directional/forward operators don't support inequality relational operators?


I mean the following operators <=, <, >, >=


因为不可能为所有双向/正向迭代器有效地实现此类运算符。
例如,考虑如何为链接列表的迭代器实现此类运算符。您会发现没有有效的解决方案。
1具有恒定的渐近时间和空间复杂度。

So when comparing two iterators, we're comparing the two elements they're pointing at (i.e. their values) an not their address ?


我们正在按顺序比较它们的相对顺序。

关于c++ - 为什么双向/正向运算符不支持不等式关系运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62573409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com