当前位置: 首页 > 知识库问答 >
问题:

为什么要使用三方比较运算符()而不是双向比较运算符?这样有优势吗?

干善
2023-03-14
#include <compare>
#include <iostream>

int main()
{ 
   auto comp1 = 1.1 <=> 2.2;
   auto comp2 = -1 <=> 1;
   std::cout << typeid(comp1).name()<<"\n"<<typeid(comp2).name();
}

我知道,如果操作数为整型,运算符将返回std::strong_ordering类型的prvalue。我还知道,如果操作数是浮点类型,运算符将生成std::partial_ordering类型的prvalue。

但是为什么要使用三方比较运算符而不是双向运算符(==!=<<=>>=)?这会给我带来什么好处吗?

共有1个答案

景理
2023-03-14

它可以在一个操作中确定顺序。
其他操作符需要两次比较。

其他运营商摘要:

  • 如果A==B为false,则不知道是A 还是 A>B
  • 如果A!=B为true,则不知道是A 还是 A>B
  • 如果A 为false,则不知道 A==B还是 A>B
  • 如果a>b为false,则不知道a==b还是a
  • 如果A<=b为true,则不知道是A==b还是A
  • 如果A>=B为true,则不知道是A==B还是A>B

 类似资料:
  • 问题内容: 稍微打错一下就遇到了这个问题(在Python 2.7.5中): 当它,我不小心爆炸了月亮。 我的理解是相当于和表现良好的类(如内置函数),相当于。 如果没有或运算符,那么我认为Python使用。 但是,这些方法都与工作对象,而与运营商 做 的工作。发生这种情况的原因是什么? 问题答案: 但是,当<和>运算符起作用时,这些方法都不能与函数对象一起起作用。发生这种情况的原因是什么? 在任何

  • 概述 比较运算符用于比较两个值的大小,然后返回一个布尔值,表示是否满足指定的条件。 2 > 1 // true 上面代码比较2是否大于1,返回true。 注意,比较运算符可以比较各种类型的值,不仅仅是数值。 JavaScript 一共提供了8个比较运算符。 > 大于运算符 < 小于运算符 <= 小于或等于运算符 >= 大于或等于运算符 == 相等运算符 === 严格相等运算符 != 不相等运算符

  • 当我试图学习C++运算符的时候,我无意中在cppreference.com上发现了一个奇怪的比较运算符,*在如下表中: “好吧,如果这些是C++中常见的运算符,我最好学会它们”,我想。但我想要弄清楚这个谜团的一切努力都没有成功。即使在这里,在堆栈溢出,我没有运气在我的搜索。 如果有的话,这个运算符到底是做什么的? *同时CPPreference.com更新了该页,现在包含有关运算符的信息。

  • 本文向大家介绍Elixir比较运算符,包括了Elixir比较运算符的使用技巧和注意事项,需要的朋友参考一下 示例 平等: 价值平等x == y(1 == 1.0 # true) 价值不平等x == y(1 != 1.0 # false) 严格平等x === y(1 === 1.0 # false) 严格不等式x === y(1 !== 1.0 # true) 比较: x > y x >= y x

  • MongoDB比较运算符用于测试等于或不等于,还有其它更高级的运算符。 在子句中使用比较运算符来确定要选择的记录。以下是可以在MariaDB中使用的比较运算符的列表: 语法及示例 - 编号 比较运算符 描述 示例 1 比较等于 2 比较等于(安全比较值) 3 比较不等于 4 比较不等于 5 比较大于 6 比较大于或等于 7 比较小于 8 比较小于或等于 9 匹配列表中的值 10 否定一个条件 11

  • 主要内容:1) 等于运算(=),2) 安全等于运算符(<=>),3) 不等于运算符(<> 或者 !=),4) 小于等于运算符(<=),5) 小于运算符(<),6) 大于等于运算符(>=),7) 大于运算符(>),8) IS NULL(ISNULL) 和 IS NOT NULL 运算符,9) BETWEEN AND 运算符,总结当使用 SELECT 语句进行查询时, MySQL 允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NUL