欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++三元表達(dá)式詳情

 更新時(shí)間:2021年11月16日 10:23:30   作者:梁唐  
這篇文章主要介紹了C++三元表達(dá)式,文章圍繞C++三元表達(dá)式的相關(guān)資料展開詳細(xì)內(nèi)容,需要的朋友可以參考一下,希望多你有所幫助

if-else語句非常常用,但在進(jìn)行一些簡(jiǎn)單邏輯判斷的時(shí)候,會(huì)顯得有些不太簡(jiǎn)潔。特別是在初始化的時(shí)候,比如我們有一個(gè)變量,某種情況下賦值成a,另外的情況下賦值成b。

使用if-else語句寫出來就是:

int cur;
if (condition) {
    cur = a;
}else {
    cur = b;
}

這當(dāng)然是沒問題的,只是在大量使用的時(shí)候會(huì)顯得有些繁瑣。因此C++當(dāng)中推出了三元表達(dá)式對(duì)此進(jìn)行簡(jiǎn)化,三元表達(dá)式也被稱為條件運(yùn)算符(?:)。

運(yùn)算符的通用格式如下:

condition ? expression1 : expression2;

問號(hào)之前的condition表示一個(gè)邏輯運(yùn)算,如果結(jié)果為true,返回expression1的值,否則返回expression2的值。

使用三元表達(dá)式之后,剛才上述的代碼可以改寫成:

int cur = condition ? a : b;

這樣我們就把6行代碼壓縮成了一行,簡(jiǎn)化了代碼,但也因此了增加了代碼閱讀的難度。因此只推薦在簡(jiǎn)單邏輯判斷下使用三元表達(dá)式,也不推薦嵌套使用,會(huì)使得代碼非常難以閱讀。

最后分享一個(gè)我個(gè)人特別喜歡的使用三元表達(dá)式的場(chǎng)景,就是結(jié)構(gòu)體排序的cmp函數(shù)。

比如我們有這樣一個(gè)場(chǎng)景,需要使用一個(gè)結(jié)構(gòu)體存儲(chǔ)兩個(gè)值x和y,代表一個(gè)坐標(biāo)。我們需要對(duì)坐標(biāo)進(jìn)行排序,排序的規(guī)則是x軸小的在前,如果x軸相等,則y小的在前。

struct P {
    int x, y;
};

P arr[1000];

大家都知道,要對(duì)這樣的結(jié)構(gòu)體排序,一種做法是我們可以額外實(shí)現(xiàn)一個(gè)cmp函數(shù)作為sort排序函數(shù)的傳參。如果不使用三元表達(dá)式,

那么cmp函數(shù)是這樣的:

bool cmp(const P &a, const P &b) {
    if (a.x == b.x) {
        return a.y < b.y;
    }else {
        return a.x < b.x;
    }
}

使用三元表達(dá)式的話,整個(gè)邏輯只有一行:

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

到此這篇關(guān)于C++三元表達(dá)式詳情的文章就介紹到這了,更多相關(guān)C++三元表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

 文章轉(zhuǎn)自:公眾號(hào):Coder梁(ID:Coder_LT)

相關(guān)文章

  • 對(duì)C語言中指針的理解與其基礎(chǔ)使用實(shí)例

    對(duì)C語言中指針的理解與其基礎(chǔ)使用實(shí)例

    這篇文章主要介紹了對(duì)C語言中指針的理解與其基礎(chǔ)使用實(shí)例,文中援引了知乎熱門問題"為什么說指針是 C 語言的精髓?"中的精彩回答,需要的朋友可以參考下
    2016-03-03
  • C++進(jìn)程鏈接工具之通信器詳解

    C++進(jìn)程鏈接工具之通信器詳解

    本文主要介紹了C++通信器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-11-11
  • c++中將二維數(shù)組元素變換為逆向存放的實(shí)現(xiàn)代碼

    c++中將二維數(shù)組元素變換為逆向存放的實(shí)現(xiàn)代碼

    編程將一個(gè)二維數(shù)組元素變換為逆向存放,即按元素在內(nèi)存中的物理排列位置,第一個(gè)元素變成倒數(shù)第一個(gè)元素,第二個(gè)元素變成倒數(shù)第二個(gè)元素,依此類推
    2020-11-11
  • C++程序的五大內(nèi)存分區(qū)實(shí)例詳解

    C++程序的五大內(nèi)存分區(qū)實(shí)例詳解

    C++內(nèi)存區(qū)域,一般可分為棧內(nèi)存區(qū)、堆內(nèi)存區(qū)、全局/靜態(tài)內(nèi)存區(qū)、文字常量?jī)?nèi)存區(qū)及程序代碼區(qū)5大分區(qū),本文就帶大家深刻的理解這5大內(nèi)存分區(qū),感興趣的可以了解一下
    2021-10-10
  • C++利用用埃式篩法求解素?cái)?shù)

    C++利用用埃式篩法求解素?cái)?shù)

    埃拉托斯特尼篩法,簡(jiǎn)稱埃氏篩或愛氏篩,是一種由希臘數(shù)學(xué)家埃拉托斯特尼所提出的一種簡(jiǎn)單檢定素?cái)?shù)的算法。本文將利用這一算法實(shí)現(xiàn)求解素?cái)?shù),感興趣的可以了解一下
    2023-01-01
  • vscode+platformIO開發(fā)stm32f4的實(shí)現(xiàn)

    vscode+platformIO開發(fā)stm32f4的實(shí)現(xiàn)

    這篇文章主要介紹了vscode+platformIO開發(fā)stm32f4的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 深入線性時(shí)間復(fù)雜度求數(shù)組中第K大數(shù)的方法詳解

    深入線性時(shí)間復(fù)雜度求數(shù)組中第K大數(shù)的方法詳解

    本篇文章是對(duì)線性時(shí)間復(fù)雜度求數(shù)組中第K大數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C/C++實(shí)現(xiàn)俄羅斯方塊游戲

    C/C++實(shí)現(xiàn)俄羅斯方塊游戲

    這篇文章主要介紹了如何利用C/C++實(shí)現(xiàn)經(jīng)典游戲之一的俄羅斯方塊,文中的實(shí)現(xiàn)步驟講解詳細(xì),對(duì)我們學(xué)習(xí)C語言和C++有一定的幫助,需要的可以參考一下
    2022-02-02
  • C語言代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    C語言代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡(jiǎn)單飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C++中new的越界訪問問題

    C++中new的越界訪問問題

    越界訪問指訪問了不是程序申請(qǐng)的內(nèi)存區(qū)域,比如申請(qǐng)了5個(gè)字節(jié)的char數(shù)組,結(jié)果讀寫數(shù)據(jù)的第六個(gè)元素,或者訪問了釋放后的內(nèi)存等等。
    2016-04-04

最新評(píng)論