c++ - 和有什么区别! ( x < y ) 和 x >= y 在 C++ 中?

标签 c++ comparison-operators

通过 EASTL,我偶然发现了一行特殊的代码。以下链接显示了感兴趣的行号为 1870 的文件。

https://github.com/paulhodge/EASTL/blob/master/include/EASTL/algorithm.h

那一行的代码是if(!(value < *i)) .评论说“我们总是用 < 或 == 来表达值(value)比较,而没有解释为什么会这样。还有一些其他区域放置了相同的评论但没有任何解释。

写这样的比较有任何好处吗(也许是我忽略的某些上下文)?如果不是,为什么 EASTL 的作者故意用这种特殊的方式写它,甚至还特意评论它?一致性是唯一的原因吗?

最佳答案

意思是你只需要提供<==对于容器值类型。这也意味着您减少了这些类型的可变性(因为所有算法都使用 !(a<b) 表示 a>=b!(a==b) 表示 a!=b );否则,你可以有 >=!=返回不一致的结果。

关于c++ - 和有什么区别! ( x < y ) 和 x >= y 在 C++ 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8737169/

相关文章:

c++ - 如何优化 Qt 项目中的包含和转发声明以及何时需要 <QtGui> 和 <Qt>

c++ - 循环队列中的 pop() 操作。我如何真正删除该项目?

c++ - 文件到数组再到结构

c++ - 无法加载 lbpcascade_profile.xml

c++ - 过滤器列表 - C++

c++ - 对象和静态位置之间的堆比较

javascript 使用 .filter() 返回新的唯一元素数组

c++ - 有没有办法进行编译时检查,一个类的所有成员都在 operator== 中进行比较

python - 我应该使用 `==` 与 `(None, None)` 元组进行比较吗?

C# 可空相等操作,为什么 null <= null 解析为 false?