operator==,!=,<,<=,>,>=,<=>(std::multimap)
| Definiert in Header <map> |
||
| template< class Key, class T, class Compare, class Alloc > bool operator==( const std::multimap<Key, T, Compare, Alloc>& lhs, |
(1) | |
| template< class Key, class T, class Compare, class Alloc > bool operator!=( const std::multimap<Key, T, Compare, Alloc>& lhs, |
(2) | (bis C++20) |
| template< class Key, class T, class Compare, class Alloc > bool operator<( const std::multimap<Key, T, Compare, Alloc>& lhs, |
(3) | (bis C++20) |
| template< class Key, class T, class Compare, class Alloc > bool operator<=( const std::multimap<Key, T, Compare, Alloc>& lhs, |
(4) | (bis C++20) |
| template< class Key, class T, class Compare, class Alloc > bool operator>( const std::multimap<Key, T, Compare, Alloc>& lhs, |
(5) | (bis C++20) |
| template< class Key, class T, class Compare, class Alloc > bool operator>=( const std::multimap<Key, T, Compare, Alloc>& lhs, |
(6) | (bis C++20) |
| template< class Key, class T, class Compare, class Alloc > synth-three-way-result<T> |
(7) | (seit C++20) |
Vergleicht den Inhalt zweier multimaps.
multimap. rhs.begin(), rhs.end(), synth-three-way) aufgerufen würde. Dieser Vergleich ignoriert die Reihenfolge Compare des multimap.-
Tmodelliertthree_way_comparable. -
<ist für Werte des Typs (möglicherweise const-qualifiziert)Tdefiniert, und<ist eine totale Ordnungsrelation.
|
Die Operatoren |
(seit C++20) |
Inhalt |
[bearbeiten] Parameter
| lhs, rhs | - | Zu vergleichende multimaps. |
-T, Key müssen die Anforderungen von EqualityComparable erfüllen, um die Überladungen (1,2) verwenden zu können. | ||
-Key muss die Anforderungen von LessThanComparable erfüllen, um die Überladungen (3-6) verwenden zu können. Die Ordnungsrelation muss eine Totalordnung herstellen. | ||
[bearbeiten] Rückgabewert
multimaps gleich ist, andernfalls false.multimaps nicht gleich ist, andernfalls false.[bearbeiten] Komplexität
multimap.multimap.[bearbeiten] Hinweise
|
Die relationalen Operatoren sind in Bezug auf den `operator<` des Elementtyps definiert. |
(bis C++20) |
|
Die relationalen Operatoren sind in Bezug auf synth-three-way definiert, der, wenn möglich, `operator<=>` und andernfalls `operator<` verwendet. Insbesondere, wenn das Element selbst keinen `operator<=>` bereitstellt, aber implizit in einen dreiwertig vergleichbaren Typ konvertiert werden kann, wird diese Konvertierung anstelle von `operator<` verwendet. |
(seit C++20) |
[bearbeiten] Beispiel
#include <cassert> #include <compare> #include <map> int main() { std::multimap<int, char> a{{1, 'a'}, {2, 'b'}, {3, 'c'}}; std::multimap<int, char> b{{1, 'a'}, {2, 'b'}, {3, 'c'}}; std::multimap<int, char> c{{7, 'Z'}, {8, 'Y'}, {9, 'X'}, {10, 'W'}}; assert ("" "Compare equal containers:" && (a != b) == false && (a == b) == true && (a < b) == false && (a <= b) == true && (a > b) == false && (a >= b) == true && (a <=> b) != std::weak_ordering::less && (a <=> b) != std::weak_ordering::greater && (a <=> b) == std::weak_ordering::equivalent && (a <=> b) >= 0 && (a <=> b) <= 0 && (a <=> b) == 0 && "Compare non equal containers:" && (a != c) == true && (a == c) == false && (a < c) == true && (a <= c) == true && (a > c) == false && (a >= c) == false && (a <=> c) == std::weak_ordering::less && (a <=> c) != std::weak_ordering::equivalent && (a <=> c) != std::weak_ordering::greater && (a <=> c) < 0 && (a <=> c) != 0 && (a <=> c) <= 0 && ""); }
[bearbeiten] Defect reports
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3431 | C++20 | operator<=> erforderte nicht, dass Tthree_way_comparable modelliert. |
requires |