operator==,!=(std::unordered_multimap)
| template< class Key, class T, class Hash, class KeyEqual, class Alloc > bool operator==( const std::unordered_multimap<Key, T, Hash, KeyEqual, Alloc>& lhs, |
(1) | |
| template< class Key, class T, class Hash, class KeyEqual, class Alloc > bool operator!=( const std::unordered_multimap<Key, T, Hash, KeyEqual, Alloc>& lhs, |
(2) | (bis C++20) |
Vergleicht die Inhalte von zwei ungeordneten Containern.
Die Inhalte von zwei ungeordneten Containern lhs und rhs sind gleich, wenn die folgenden Bedingungen erfüllt sind:
- lhs.size() == rhs.size().
- jede Gruppe äquivalenter Elemente
[lhs_eq1,lhs_eq2), die aus lhs.equal_range(lhs_eq1) erhalten wird, hat eine entsprechende Gruppe äquivalenter Elemente im anderen Container[rhs_eq1,rhs_eq2), die aus rhs.equal_range(rhs_eq1) erhalten wird und die folgenden Eigenschaften aufweist:
- std::distance(lhs_eq1, lhs_eq2) == std::distance(rhs_eq1, rhs_eq2).
- std::is_permutation(lhs_eq1, lhs_eq2, rhs_eq1) == true.
Das Verhalten ist undefiniert, wenn Key oder T nicht EqualityComparable sind.
Das Verhalten ist auch undefiniert, wenn hash_function() und key_eq() nicht das gleiche Verhalten für lhs und rhs aufweisen oder wenn operator== für Key keine Verfeinerung der Partition in äquivalente Schlüsselgruppen ist, die durch key_eq() eingeführt wurde (d. h. wenn zwei Elemente, die mit operator== gleich verglichen werden, in verschiedene Partitionen fallen).
|
Der Operator |
(seit C++20) |
[bearbeiten] Parameter
| lhs, rhs | - | Zu vergleichende ungeordnete Container. |
[bearbeiten] Rückgabewert
[bearbeiten] Komplexität
Proportional zu ΣSi2 Aufrufe von operator== für value_type, Aufrufe des von key_eq zurückgegebenen Prädikats und Aufrufe des von hash_function zurückgegebenen Hashers im Durchschnittsfall, wobei S die Größe der i-ten Gruppe von äquivalenten Schlüsseln ist. Proportional zu N2 im schlimmsten Fall, wobei N die Größe des Containers ist. Der Durchschnittsfall wird proportional zu N, wenn die Elemente innerhalb jeder Gruppe von äquivalenten Schlüsseln in der gleichen Reihenfolge angeordnet sind (was passiert, wenn die Container Kopien voneinander sind).