[英]Why do we need the spaceship <=> operator in C++?
为什么我们在 C++ 中需要这样的运算符,它在现代 C++ 编程中有何用处? 任何可以应用它的真实世界代码示例都会有所帮助。
这个问题旨在了解现实世界中的实际应用,而无需阅读 Herb Sutter 的冗长提案。 虽然没有冒犯这个提议。
我会给你三点动力,就在我的脑海里:
>
、 >=
、 ==
、 <=
、 <
。 使用<=>
(宇宙飞船),您可以以完全通用的方式实现这些其他操作中的每一个。strcmp()
函数。 所以 - 对于字典顺序检查很有用,例如向量或列表或其他有序容器中的数据。x86
或x86_64
比较 a 和 b ( CMP RAX, RBX
) 基本上就像减法 ( SUB RAX, RBX
) 除了RAX
实际上没有改变,只有标志受到影响,所以你可以使用“在等于/不等于/大于/小于/等上跳转”。 (JE/JNE/JGT/JLT 等)作为下一条指令。 CMP
应该被认为是“宇宙飞船比较”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.