operator==,!=,<,<=,>,>=,<=>(std::multiset)
| Definiert in Header <set> |
||
| template< class Key, class Compare, class Alloc > bool operator==( const std::multiset<Key, Compare, Alloc>& lhs, |
(1) | |
| template< class Key, class Compare, class Alloc > bool operator!=( const std::multiset<Key, Compare, Alloc>& lhs, |
(2) | (bis C++20) |
| template< class Key, class Compare, class Alloc > bool operator<( const std::multiset<Key, Compare, Alloc>& lhs, |
(3) | (bis C++20) |
| template< class Key, class Compare, class Alloc > bool operator<=( const std::multiset<Key, Compare, Alloc>& lhs, |
(4) | (bis C++20) |
| template< class Key, class Compare, class Alloc > bool operator>( const std::multiset<Key, Compare, Alloc>& lhs, |
(5) | (bis C++20) |
| template< class Key, class Compare, class Alloc > bool operator>=( const std::multiset<Key, Compare, Alloc>& lhs, |
(6) | (bis C++20) |
| template< class Key, class Compare, class Alloc > synth-three-way-result<T> |
(7) | (seit C++20) |
Vergleicht den Inhalt zweier multisets.
multisets. rhs.begin(), rhs.end(), synth-three-way) aufgerufen würde. Dieser Vergleich ignoriert die Sortierung Compare des multisets.-
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 multisets |
-Key muss die Anforderungen von EqualityComparable erfüllen, um die Überladungen (1,2) verwenden zu können. | ||
[bearbeiten] Rückgabewert
multisets gleich ist, false andernfalls.multisets nicht gleich ist, false andernfalls.[bearbeiten] Komplexität
multisets.multisets.[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 <set> int main() { const std::multiset a{1, 2, 3}, b{1, 2, 3}, c{7, 8, 9, 10}; 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 |