strcmp可以比较数组么_C ++ 20中的三向比较运算符(太空飞船运算符)

三向比较运算符“ <=>”称为太空飞船运算符。飞船操作员确定两个对象甲和乙是否A B。太空船操作员或编译器可以为我们自动生成。同样,三向比较是一种可以在一个查询中给出整个关系的函数。传统上,strcmp()是这样的功能。给定两个字符串,它将返回一个整数,其中:

<0表示第一个字符串小于

== 0如果两者相等

如果第一个字符串较大,则> 0。

e5822c9a1d3799ee215ce0dbee80094b.png

它可以给出三个结果之一,因此是三向比较。

9adcd94309891efe5aa7b0c77405e7ff.png

从上表可以看出,宇宙飞船算子是主要算子,即可以颠倒,可以用它来写对应的次要算子。

(A <=> B)如果A (A <=> B)> 0为真,如果A> B
(A <=> B)== 0如果A和B相等/相等。

下面是两个浮点变量的三向比较运算符的实现:

#include  using namespace std; int main() {     float A = -0.0;     float B = 0.0;     auto ans = A <= > B;     if (ans < 0)         cout << "-0 is less than 0";     else if (ans == 0)         cout << "-0 and 0 are equal";     else if (ans > 0)         cout << "-0 is greater than 0";       return 0; } 

下面是两个向量的三向比较运算符的实现:

#include  using namespace std; int main() {     vector v1{ 3, 6, 9 };     vector v2{ 3, 6, 9 };       auto ans2 = v1 <= > v2;     if (ans2 < 0) {           cout << "v1 < v2" << endl;     }     else if (ans2 == 0) {           cout << "v1 == v2" << endl;     }     else if (ans2 > 0) {           cout << "v1 > v2" << endl;     }       return 0; } 

输出:

aa9b6c264d6042afc21b3640f12f285c.png

注意:您应该下载足够的最新编译器以运行C ++ 20。

太空飞船运营商的需求:

  • 这是所有其他比较运算符(对于完全排序的域)的通用概括:>,> =,==,<=,使用<=>,可以在用户定义的数据类型的情况下以完全通用的方式实现每个操作,例如一种结构,其中一个结构必须一个一个地定义另外六个比较运算符。
  • 对于字符串,它等效于C标准库的旧strcmp()函数。因此,对于字典顺序检查(例如矢量或列表中的数据或其他有序容器中的数据)很有用。

领取学习资料及教程点击下方了解更多链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值