您现在的位置是:群英 > 开发技术 > 编程语言
C++三元表达式用法是什么,使用要注意什么?
Admin发表于 2021-12-22 20:31:591589 次浏览

    这篇文章给大家分享的是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++三元表达式使用的介绍,上述示例具有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。

文本转载自脚本之家

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: c 三元表达式
相关信息推荐
2022-06-23 17:04:39 
摘要:​本篇文章给大家带来的内容是关于HTML5 WebSQL四种基本操作的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
2022-06-27 17:31:17 
摘要:本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于获取元素和节点的相关内容,包括了通过id、类名、name、标签名获取元素,创建、删除、克隆节点等问题,下面一起来看一下,希望对大家有帮助。
2022-07-09 17:35:44 
摘要:在php中,可使用json_decode()将json数据转为数组或对象类型,语法“json_decode($json,$assoc)”;当参数“$assoc”省略时会将json转为对象,当该参数的值设为“TRUE”时会将json转为数组。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部