gpt4 book ai didi

c++ - 为什么我们需要 C++ 中的 spaceship <=> 运算符?

转载 作者:可可西里 更新时间:2023-11-01 15:53:08 27 4
gpt4 key购买 nike

为什么我们在 C++ 中需要这样的运算符,它在现代 C++ 编程中有何用处?任何可以应用此方法的真实代码示例都会有所帮助。

这个问题旨在了解现实世界中的实际应用,而无需阅读 Herb Sutter 的冗长提案。不过,没有冒犯该提案的意思。

最佳答案

我会给你三点动力,就在我的脑海里:

  1. 这是所有其他比较运算符的通用概括(对于完全有序的域):> , >= , == , <= , < .使用 <=> (宇宙飞船),您可以以完全通用的方式实现这些其他操作中的每一个。
  2. 对于字符串,它相当于旧的 strcmp() C 标准库中的函数。所以 - 对于字典顺序检查很有用,例如 vector 或列表或其他有序容器中的数据。
  3. 对于整数,这就是硬件的作用:在 x86 上或 x86_64比较 a 和 b ( CMP RAX, RBX ) 基本上就像减去 ( SUB RAX, RBX ) 除了 RAX实际上并没有改变,只有标志受到影响,所以你可以使用“跳转等于/不等于/大于/小于/等等”。 (JE/JNE/JGT/JLT 等)作为下一条指令。 CMP应该被认为是“飞船比较”。

关于c++ - 为什么我们需要 C++ 中的 spaceship <=> 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661170/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com