比较运算符
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
1,比较运算符返回的值为bool值,重载后的比较运算符返回的值未知。
2, 虽然在c++中保留了非常多的东西,但是在这里是没有奇怪的===的等于运算符和<>这样的不等于运算符的。
指针的比较
指针是可以通过比较运算符进行比较的,但是一般来说,指针的比较之中只有==和!=两种情况,没有其他的运算。当然,或许你在使用指针进行比较的时候,使用了大于或者小于,这种情况下虽然编译器可能不会报错,但是实际上这样的行为是没有什么实际意义的。
注意:这也正是老式c风格字符串不应该直接使用==或!=进行比较的原因,如果直接使用==或者!=进行比较,那么实际上进行比较的应该是指针,而非c风格字符串中保存的内容
三目比较运算符
<=> 比较运算符c++20新增
如果左操作数小于右操作数,那么(a <=> b) < 0
如果左操作数大于右操作数,那么(a <=> b) > 0
如果左操作数等于右操作数,那么(a <=> b) == 0
虽然这是一个全新的运算符,但是使用方法并不是很陌生。例如在老式的c风格字符串中,有一个strcmp的方法,使用起来就和这个差不多。
不过还是很让人感到困扰,这个新的<=>真的是有必要的吗?
#include <iostream>
using namespace std;
// 看上去,<=>的运算符和a - b差不多
int main()
{
int a = 1;
int b = 2;
if (a - b < 0)
{
cout << "a小于b" << endl;
}
else if (a - b == 0)
{
cout << "a等于b" << endl;
}
else if (a - b > 0)
{
cout << "a大于b" << endl;
}
}
点击查看全部c++教程
|