C ++ 20中的三向比較運算符(太空飛船運算符)

2020-12-24 騰訊網

三向比較運算符「 」稱為太空飛船運算符。飛船操作員確定兩個對象甲和乙是否A B。太空船操作員或編譯器可以為我們自動生成。同樣,三向比較是一種可以在一個查詢中給出整個關係的函數。傳統上,strcmp()是這樣的功能。給定兩個字符串,它將返回一個整數,其中:

== 0如果兩者相等

如果第一個字符串較大,則> 0。

它可以給出三個結果之一,因此是三向比較。

從上表可以看出,宇宙飛船算子是主要算子,即可以顛倒,可以用它來寫對應的次要算子。

(A B)如果A

(A B)> 0為真,如果A> B

(A B)== 0如果A和B相等/相等。

下面是兩個浮點變量的三向比較運算符的實現:

下面是兩個向量的三向比較運算符的實現:

輸出:

注意:您應該下載足夠新編譯器以運行C ++ 20。

太空飛船運營商的需求:

這是所有其他比較運算符(對於完全排序的域)的通用概括:>,> =,==,使用,可以在用戶定義的數據類型的情況下以完全通用的方式實現每個操作,例如一種結構,其中一個結構必須一個一個地定義另外六個比較運算符。

對於字符串,它等效於C標準庫的舊strcmp()函數。因此,對於字典順序檢查(例如矢量或列表中的數據或其他有序容器中的數據)很有用。

相關焦點

  • 信息技術《運算符、函數和表達式-運算符》答辯
    2.簡述關係運算符和邏輯運算符。【參考答案】關係運算符也叫比較運算符,用來對兩個表達式的值進行比較,比較的結果是一個邏輯值(布爾值),Visual Basic提供了8個關係運算符:分別是相等(=)、不相等(<>或><)、小於(<)、大於(>)、小於或等於(<=)、大於或等於(>=)。
  • java中賦值運算符+=的意思
    java基礎中+=的意思就是先將兩邊相加在賦值給左邊。{short a =10;a +=10;//a = a + 10;System.out.println(a);}}題目中aa =10;// a +=10;a = (short)(a + 10);System.out.println(a);}}重點提示:賦值運算符中隱含了強制類型轉換的功能
  • Python 炫技操作:海象運算符的三種用法
    在 Golang 中的條件語句可以直接在 if 中運算變量的獲取後直接對這個變量進行判斷,可以讓你少寫一行代碼import "fmt"func main {if age := 20;age > 18 {fmt.Println
  • 單片機邏輯電路運算符及邏輯電路符號
    在數字電路,我們經常會遇到邏輯電路,而在 C 語言中,我們則經常用到邏輯運算
  • 學員問:C語言入門要掌握哪些基礎知識?
    例1:計算兩個整數之和的c程序:#include main() { int a,b,sum; a=20; /*定義變量a,b,sum為整型變量*/ b=15; /*把整數20賦值給整型變量a*/ sum=a+b; /*把整數15賦值給整型變量b*/ printf(「a=%d,b=%d,sum=%d\n」,a,b,sum)
  • python 中的運算比較符 is 與 ==
    我們在日常的工作過程中,經常會使用到比較符 is 或者 == 寫表達式對兩個對象進行判斷操作,那麼究竟什麼情況下用
  • C語言中「c=a+b」,這種結構合理嗎?
    側面解析一下 對於a+++++b這一段代碼,編譯系統從左至右掃描整條語句,先遇到a++,判斷出來是一個a的後綴自加運算; 然後接著掃描,遇到一個+,+是一個二目運算符
  • 無序的集合:Python中的數學集合運算
    ,元素不會重複,集合中的所有元素都是唯一的。operand type(s) for -: 'set' and 'list'『difference_update()』從other集合中刪除該集合中的元素,通過使用-= 運算符或使用difference_update() 方法來執行,返回類型為None,將修改原始集本身。
  • 入門C語言中的數組,字符串常量與指針
    數組聲明為 數據類型 名稱[ constant-size ],並將一個數據類型的一個或多個實例分組到一個可尋址的位置,constant-size可能是一個表達式,但是該表達式必須求值為常量,例如: #define MAX_SIZE 16 …… int list [MAX_SIZE + 1];C數組開始於元素0,所以像陣列定義 int a[3];將創建三個
  • C語言的簡介和特點說明
    C語言的簡介和特點說明 C語言學習 發表於 2020-02-17 13:41:22 c語言是面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。
  • 20個常用的JavaScript簡寫技巧
    給多個變量賦值 我們可以使用數組解構來在一行中給多個變量賦值。 3. 三元運算符 我們可以使用三元(條件)運算符在這裡節省 5 行代碼。 4.
  • C Primer Plus(第6版)中英文版 高清PDF電子書
    第3~15章詳細講解了C語言的相關知識,包括數據類型、格式化輸入/輸出、運算符、表達式、語句、循環、字符輸入和輸出、函數、數組和指針、字符和字符串函數、內存管理、文件輸入輸出、結構、位操作等。第16章、17章介紹C預處理器、C庫和高級數據表示。
  • 一步帶您了解C語言中的「register」關鍵字
    寄存器比內存訪問要快,因此可以使用register關鍵字將C程序中最常用的變量放入寄存器中。關鍵字register會向編譯器提示可以將給定變量放入寄存器中。編譯器可以選擇是否將其保存在寄存器中。通常,編譯器自己進行優化,然後將變量放入寄存器中。
  • 「程序猿計劃」C語言概述
    下面將C語言和PASCAL語言作比較,讓大家體驗一下。C語言 { } PASCAL BEGIN……AND 複合語句看到了吧,PASCAL的語句比較C語言要複雜得多。(這難道就是使用PASCAL語言的程序猿禿頭的原因?!我好想知道了某些不得了的事情。)
  • PostgreSQL Tips:如何在PostgreSQL中使用正則表達式-LIKE和〜Tilde
    ~*之外的與常規匹配的代字運算符系列以外的其他方法或運算符(如 LIKE,NOT LIKE 和 SIMILAR TO)使用它們。區分大小寫和不區分大小寫的情況下的表達式。LIKE 和 SIMILAR TO 運算符執行的功能大致相同。現在讓我們討論這些運算符,並看看如何將它們用作正則表達式的一部分。
  • 「003期」JavaSE面試題(三):JavaSE語法(1)
    username.equals(""),二者的順序不能交換,更不能用&運算符,因為第一個條件如果不成立,根本不能進行字符串的 equals 比較,否則會產生 NullPointerException異常。
  • 《太空旅客》阿瓦隆號飛船
    科技不斷更新,太空類的科幻電影已經成為了院線的常客。然而人類在遙遠的太空中卻如此的渺小,為了自己能夠存活的欲望,想盡辦法,下面給大家介紹這部電影《太空旅客》故事發生在未來世界裡,一艘載著五千多名乘客的飛船朝著殖民星球飛去。所有旅客都將在休眠倉中度過漫長120年。然而誰也不知道意外什麼時候會到來,在飛行的途中,飛船被隕石碎片砸中。主角吉姆被提前喚醒了。