相关疑难解决方法(0)

什么是C++中的<=>运算符?

当我试图了解C++运算符时,我偶然发现cppreference.com上的一个奇怪的比较运算符,*在一个如下所示的表中:

在此输入图像描述

"好吧,如果这些是C++中常见的操作符,我会更好地学习它们",我想.但我所有试图阐明这个谜团的尝试都没有成功.即使在这里,在Stack Overflow上我的搜索也没有运气.

<=>C++之间是否存在联系?

如果有的话,这个运营商到底做了什么?

*与此同时,cppreference.com更新了该页面,现在包含有关<=>运营商的信息.

c++ operators c++-faq spaceship-operator c++20

200
推荐指数
5
解决办法
3万
查看次数

三向比较运算符与减法有何不同?

<=>在C++ 20中有一个新的比较运算符.但是我认为在大多数情况下,简单的减法效果很好:

int my_strcmp(const char *a, const char *b) {
    while (*a == *b && *a != 0 && *b != 0) {
        a++, b++;
    }
    // Version 1
    return *a - *b;
    // Version 2
    return *a <=> *b;
    // Version 3
    return ((*a > *b) - (*a < *b));
}
Run Code Online (Sandbox Code Playgroud)

它们具有相同的效果.我无法理解其中的差异.

c++ comparison-operators spaceship-operator c++20

51
推荐指数
3
解决办法
7480
查看次数

C++中的太空船比较运算符

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

这个问题旨在了解现实世界中的实际应用,而无需阅读Herb Sutter的罗嗦提议.尽管如此,对提案没有冒犯.

c++ spaceship-operator c++20

10
推荐指数
1
解决办法
3735
查看次数