通过 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/