国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

比較

2023-08-01 22:25 作者:追逐彗星的尾巴  | 我要投稿

眾所周知,在C++中你不能總是很好地比較不同類型的整數(shù)。例如比較int x{ 1 }unsigned y{ -1 },編譯器會說x小于y(因為有符號類型會被隱式轉(zhuǎn)換為無符號類型),但實際上我們想要的是1大于-1。

于是C++20給出了一組更安全的比較整數(shù)大小的函數(shù),它們包含在<utility>頭文件中。

每個函數(shù)都有兩個參數(shù),分別對應(yīng)于運算符的左邊和右邊,函數(shù)返回一個布爾值。

Case :

下面是一個std::cmp_less()的簡單實現(xiàn):

三向比較運算符

C++20引入了三向比較運算符(<=>),也被稱為 "Spaceship Operator" 。

若操作數(shù)為整型,則運算符的返回值是std::strong_ordering類型:其中strong_ordering::equal表示左右相等,strong_ordering::less表示左小于右,strong_ordering::greater表示左大于右。

若操作數(shù)為浮點型,則返回值是std::partial_ordering類型:其中partial_ordering::equivalent表示左右等價,partial_ordering::lesspartial_ordering::greater同上,partial_ordering::unordered表示無序(無法比較)。

--------------------------------------------------------------------------------------------------------------------

三向操作符的作用在于能夠簡化類中的比較重載。假設(shè)我們定義了一個類,并需要為這個類提供比較運算符,即一共需要重載六次運算符。但現(xiàn)在只需要重載一次三向運算符即可。

Case :

在這里我們使用了default關(guān)鍵字進行三向運算符的默認實現(xiàn)。

再來看一個復雜點的例子。

這里我們不僅需要定義<=>的重載,還需要重載運算符==。因為雖然三向運算符知道兩個分數(shù)對象之間的大小關(guān)系,但它無法判斷兩個對象的相等與否。在我們定義了運算符==后,編譯器就可以自動重寫!=表達式。

比較的評論 (共 條)

分享到微博請遵守國家法律
定日县| 甘洛县| 鹤峰县| 搜索| 自治县| 囊谦县| 滕州市| 莲花县| 大邑县| 色达县| 钟山县| 鹤山市| 正阳县| 铜山县| 图们市| 博野县| 普兰县| 吉林省| 哈密市| 南漳县| 延吉市| 新宁县| 塔河县| 久治县| 鹤壁市| 赤城县| 富民县| 安溪县| 皮山县| 定陶县| 高邮市| 安龙县| 公主岭市| 长岛县| 临西县| 民权县| 江华| 绍兴县| 普定县| 喀喇沁旗| 扶绥县|