输入迭代器的相等性比较
Equality comparison for Input iterators
对于输入迭代器,如果其中一个迭代器无效,比较相等的要求是什么?
input_iter x = foo();
input_iter y = x;
++x;
return x == y; // What must this return?
在上面的例子中,取消引用y
显然是未定义的,但是像这样的相等比较的结果是否定义?阅读 cppreference.com,如果两个输入迭代器实际上相同,则肯定是必须比较true
,因为输入迭代器必须满足EqualityComparable
,但我实际上没有看到任何说明结果必须是什么如果不一样。我是否允许始终从operator==
返回true
(除非与结束迭代器进行比较(?
">对于输入迭代器,如果其中一个迭代器无效,比较相等的要求是什么?
没有。引用ISO/IEC 14882:2003(E(, [lib.input.iterators],
==
是其域上的等价关系(着重号添加(bool(a==b) != bool(a!=b)
==
域(着重号后加(
和
r
[++r
之前] 的先前值的任何副本都不再 ...在==
领域.
对于无效的输入迭代器,不要求==
或!=
具有任何特定行为。
相关文章:
- C++值初始化矢量迭代器比较
- 如何从目录迭代器中选择特定文件并进行比较
- 比较迭代器会使程序崩溃,而不会在自定义气泡排序实现中出现错误
- 使用迭代器的自定义比较器函数
- 提升堆元素句柄比较和 MSVC 迭代器调试工具
- 输入迭代器的相等性比较
- 空列表迭代器比较始终为真
- 自定义迭代器:如果 a 和 b 的行为不同,如何正确处理距离计算和相等比较
- 在这种情况下,可以比较无效的迭代器
- 在将迭代器与C 中的null进行比较时,编译误差
- 如何将迭代器传递到std :: lower_bound()比较函数
- 迭代器比较STL
- C++:为什么输出迭代器不支持比较操作?
- 比较迭代器和const_iterator
- 比较迭代器value_type范围构造函数
- 比较迭代器时的怪异(?)行为
- c++速度比较迭代器与索引
- 模板比较迭代器
- 比较迭代器,c++
- C++为什么我们不能使用 > 和 < 来比较迭代器?