首页后端开发其他后端知识C++三元表达式用法是什么,使用要注意什么?

C++三元表达式用法是什么,使用要注意什么?

时间2024-03-29 00:50:03发布访客分类其他后端知识浏览670
导读:这篇文章给大家分享的是C++三元表达式的内容。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的很详细,对大家学习和理解C++三元表达式的网使用有一定的帮助,感兴趣的朋友接下来一起跟随小编看看吧。if-else语句非常常用,但在进...

这篇文章给大家分享的是C++三元表达式的内容。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的很详细,对大家学习和理解C++三元表达式的网使用有一定的帮助,感兴趣的朋友接下来一起跟随小编看看吧。

if-else语句非常常用,但在进行一些简单逻辑判断的时候,会显得有些不太简洁。特别是在初始化的时候,比如我们有一个变量,某种情况下赋值成a,另外的情况下赋值成b。

使用if-else语句写出来就是:

int cur;

if (condition) {
    
    cur = a;

}
else {
    
    cur = b;

}
    

这当然是没问题的,只是在大量使用的时候会显得有些繁琐。因此C++当中推出了三元表达式对此进行简化,三元表达式也被称为条件运算符(?:)。

运算符的通用格式如下:

condition ? expression1 : expression2;
    

问号之前的condition表示一个逻辑运算,如果结果为true,返回expression1的值,否则返回expression2的值。

使用三元表达式之后,刚才上述的代码可以改写成:

int cur = condition ? a : b;

这样我们就把6行代码压缩成了一行,简化了代码,但也因此了增加了代码阅读的难度。因此只推荐在简单逻辑判断下使用三元表达式,也不推荐嵌套使用,会使得代码非常难以阅读。

最后分享一个我个人特别喜欢的使用三元表达式的场景,就是结构体排序的cmp函数。

比如我们有这样一个场景,需要使用一个结构体存储两个值x和y,代表一个坐标。我们需要对坐标进行排序,排序的规则是x轴小的在前,如果x轴相等,则y小的在前。

struct P {
    
    int x, y;

}
    ;
    

P arr[1000];
    

大家都知道,要对这样的结构体排序,一种做法是我们可以额外实现一个cmp函数作为sort排序函数的传参。如果不使用三元表达式,

那么cmp函数是这样的:

bool cmp(const P &
    a, const P &
b) {

    if (a.x == b.x) {
    
        return a.y  b.y;

    }
else {
    
        return a.x  b.x;

    }

}
    

使用三元表达式的话,整个逻辑只有一行:

bool cmp(const P&
     a, const P&
 b) {
    
    return a.x == b.x ? a.y  b.y : a.x  b.x;

}
    

以上就是关于C++三元表达式使用的介绍,上述示例具有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习有帮助,想要了解更多可以继续浏览网络其他相关的文章。

文本转载自脚本之家

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: C++三元表达式用法是什么,使用要注意什么?
本文地址: https://pptw.com/jishu/655310.html
C语言中分支和循环语句是什么,怎样使用? C语言的scanf和scanf_s函数用法是什么?

游客 回复需填写必要信息