ä½ç½®ï¼é¦é¡µ > > std::partial_ordering
std::partial_ordering
| å®ä¹äºå¤´æä»¶ <compare>
|
||
| class partial_ordering; |
(C++20 èµ·) | |
类类å std::partial_ordering æ¯è¿ç§ä¸è·¯æ¯è¾çç»æç±»åï¼
- æ¥çº³ææå ä¸ªå ³ç³»è¿ç®ç¬¦ï¼ == ã != ã < ã <= ã > ã >= ï¼
- ä¸éå«å¯æ¿æ¢æ§ï¼è¥ a çä»·äº b ï¼å f(a) å¯è½ä¸çä»·äº f(b) ãè¿é f ææä»£ç彿°ä» å¯ç»ç±åæ°çå ¬å¼ const æåè¯»åæ¾èçæ¯è¾ç¶æãæ¢è¨ä¹ï¼çä»·çå¼å¯è½å¯åºå«ã
- æ¥çº³ä¸å¯æ¯è¾å¼ï¼ a < b ã a == b å a > b å¯ä»¥å为 false
常é
ç±»å std::partial_ordering æ¥æåä¸ªåæ³å¼ï¼å®ç°ä¸ºå
¶ç±»åç const éææ°æ®æåï¼
| Â | |
| æå常é | å®ä¹ |
| less(inline constexpr) [éæ] |
std::partial_ordering ç±»ååæ³å¼ï¼æç¤ºå°äºï¼å
åºï¼å
³ç³» (å ¬å¼éææå常é) |
| equivalent(inline constexpr) [éæ] |
std::partial_ordering ç±»ååæ³å¼ï¼æç¤ºçä»·ï¼æ¢éå
åºäº¦éååºï¼ (å ¬å¼éææå常é) |
| greater(inline constexpr) [éæ] |
std::partial_ordering ç±»ååæ³å¼ï¼æç¤ºå¤§äºï¼ååºï¼å
³ç³» (å ¬å¼éææå常é) |
| unordered(inline constexpr) [éæ] |
std::partial_ordering ç±»ååæ³å¼ï¼æç¤ºä¸ä¸å¯æ¯è¾å¼çå
³ç³» (å ¬å¼éææå常é) |
转æ¢
std::partial_ordering ä¸å¯éå¼è½¬æ¢å
¶ä»æ¯è¾ç±»å«ç±»åï¼è std::strong_ordering å std::weak_ordering åå¯éå¼è½¬æ¢ä¸º partial_ordering ã
è¿åå¼
è¥ v 为 equivalent å为 std::weak_equality::equivalent ï¼è¥ v 为 less ã greater æ unordered å为 std::weak_equality::nonequivalent ã
}}
æ¯è¾
æ¯è¾è¿ç®ç¬¦å¨æ¤ç±»åå¼ååé¢é â0â é´å®ä¹ãè¿æ¯æç¨è¡¨è¾¾å¼ a <=> b == 0 æ a <=> b < 0 转æ¢ä¸è·¯æ¯è¾çç»æä¸ºå¸å°å ³ç³»ï¼è§ std::is_eq ã std::is_lt çã
è¿äºå½æ°å¯¹é常æ é宿æé宿¥æ¾ä¸å¯è§ï¼èåªè½å¨ std::partial_ordering ä¸ºåæ°çå
³èç±»æ¶ç±åæ°ä¾èµæ¥æ¾æ¾å°ã
è¥ç¨åºè¯å¾å° partial_ordering ä¸ä»»ä½å¼äºæ´æ°åé¢é â0â çå
容æ¯è¾ï¼åå
¶è¡ä¸ºæªå®ä¹ã
| operator==operator<operator>operator<=operator>=operator<=> |
ä¸é¶æ partial_ordering æ¯è¾ (彿°) |
operator==
| friend constexpr bool operator==(partial_ordering v, /*unspecified*/ u) noexcept; |
(1) | |
| friend constexpr bool   operator==(partial_ordering v, partial_ordering w) noexcept = default; |
(2) | |
åæ°
| v, w | - | è¦æ£æ¥ç std::partial_ordering å¼
|
| u | - | 任使¥ååé¢é¶å®åçç±»åçä¸ä½¿ç¨å½¢å |
è¿åå¼
v 为 equivalent å为 true ï¼èè¥ v 为 unordered ã less æ greater å为 false ãoperator<
| friend constexpr bool operator<(partial_ordering v, /*unspecified*/ u) noexcept; |
(1) | |
| friend constexpr bool operator<(/*unspecified*/ u, partial_ordering v) noexcept; |
(2) | |
åæ°
| v | - | è¦æ£æ¥ç std::partial_ordering å¼
|
| u | - | 任使¥ååé¢é¶å®åçç±»åçä¸ä½¿ç¨å½¢å |
è¿åå¼
v 为 less å为 true ï¼èè¥ v 为 greater ã equivalent æ unordered å为 false ãv 为 greater å为 true ï¼èè¥ v 为 less ã equivalent æ unordered å为 false ã
operator<=
| friend constexpr bool operator<=(partial_ordering v, /*unspecified*/ u) noexcept; |
(1) | |
| friend constexpr bool operator<=(/*unspecified*/ u, partial_ordering v) noexcept; |
(2) | |
åæ°
| v | - | è¦æ£æ¥ç std::partial_ordering å¼
|
| u | - | 任使¥ååé¢é¶å®åçç±»åçä¸ä½¿ç¨å½¢å |
è¿åå¼
v 为 less æ equivalent å为 true ï¼èè¥ v 为 greater æ unordered å为 false ãv 为 greater æ equivalent å为 true ï¼èè¥ v 为 less æ unordered å为 false ã
operator>
| friend constexpr bool operator>(partial_ordering v, /*unspecified*/ u) noexcept; |
(1) | |
| friend constexpr bool operator>(/*unspecified*/ u, partial_ordering v) noexcept; |
(2) | |
åæ°
| v | - | è¦æ£æ¥ç std::partial_ordering å¼
|
| u | - | 任使¥ååé¢é¶å®åçç±»åçä¸ä½¿ç¨å½¢å |
è¿åå¼
v 为 greater å为 true ï¼èè¥ v 为 less ã equivalent æ unordered å为 false ãv 为 less å为 true ï¼èè¥ v 为 greater ã equivalent æ unordered å为 false ã
operator>=
| friend constexpr bool operator>=(partial_ordering v, /*unspecified*/ u) noexcept; |
(1) | |
| friend constexpr bool operator>=(/*unspecified*/ u, partial_ordering v) noexcept; |
(2) | |
åæ°
| v | - | è¦æ£æ¥ç std::partial_ordering å¼
|
| u | - | 任使¥ååé¢é¶å®åçç±»åçä¸ä½¿ç¨å½¢å |
è¿åå¼
v 为 greater æ equivalent å为 true ï¼èè¥ v 为 less æ unordered å为 false ãv 为 less æ equivalent å为 true ï¼èè¥ v 为 greater æ unordered å为 false ã
operator<=>
| friend constexpr partial_ordering operator<=>(partial_ordering v, /*unspecified*/ u) noexcept; |
(1) | |
| friend constexpr partial_ordering operator<=>(/*unspecified*/ u, partial_ordering v) noexcept; |
(2) | |
åæ°
| v | - | è¦æ£æ¥ç std::partial_ordering å¼
|
| u | - | 任使¥ååé¢é¶å®åçç±»åçä¸ä½¿ç¨å½¢å |
è¿åå¼
v 为 less å为 greater ï¼è¥ v 为 greater å为 less ï¼å¦å为 v ã
注æ
æµ®ç¹å¼ä¹é´çå
建è¿ç®ç¬¦ <=> ä½¿ç¨æ¤é¡ºåºï¼æ£é¶ä¸è´é¶æ¯è¾ä¸º equivalent ï¼ä½è½è¾¨å«ï¼è NaN å¼ä¸ä»»ä½å
¶ä»å¼æ¯è¾ä¸º unordered ã
示ä¾
| æ¬èæªå®æ åå ï¼ææ ç¤ºä¾ |
åé
| (C++20) |
ä¸è·¯æ¯è¾çç»æç±»åï¼æ¯æææ 6 ç§è¿ç®ç¬¦ä¸å¯æ¿æ¢ (ç±») |
| (C++20) |
ä¸è·¯æ¯è¾çç»æç±»åï¼æ¯æææ 6 ç§è¿ç®ç¬¦ä¸ä¸å¯æ¿æ¢ (ç±») |