为什么我们在 C++ 中需要这样的运算符,它在现代 C++ 编程中有何用处?任何可以应用的真实世界代码示例都会有所帮助。
这个问题旨在了解现实世界中的实际应用,而无需阅读 Herb Sutter 的冗长建议。不过,没有冒犯该提案。
为什么我们在 C++ 中需要这样的运算符,它在现代 C++ 编程中有何用处?任何可以应用的真实世界代码示例都会有所帮助。
这个问题旨在了解现实世界中的实际应用,而无需阅读 Herb Sutter 的冗长建议。不过,没有冒犯该提案。
我会给你三点动力,就在我的脑海中:
>
, >=
, ==
, <=
, <
. 使用<=>
(spaceship),您可以以完全通用的方式实现这些其他操作中的每一个。strcmp()
C 标准库中的旧函数。所以 - 对于字典顺序检查很有用,例如向量或列表或其他有序容器中的数据。x86
or x86_64
Comparing a and b ( CMP RAX, RBX
) 基本上就像减去 ( SUB RAX, RBX
) 只是RAX
实际上并没有改变,只有标志受到影响,所以你可以使用“在相等/不相等时跳转” /大于/小于/等。” (JE/JNE/JGT/JLT 等)作为下一条指令。CMP
应该被认为是“宇宙飞船比较”。