Namensräume
Varianten
Aktionen

operator==,!=<small>(std::unordered_multiset)</small>

Von cppreference.com
 
 
 
 
template< class Key, class Hash, class KeyEqual, class Alloc >

bool operator==<span class="br0">(</span> const std::unordered_multiset<Schlüssel, Hash, SchlüsselGleich, Allokator>& lhs,

                 const std::unordered_multiset<Schlüssel, Hash, SchlüsselGleich, Allokator>& rhs );
(1)
template< class Key, class Hash, class KeyEqual, class Alloc >

bool operator!=<span class="br0">(</span> const std::unordered_multiset<Schlüssel, Hash, SchlüsselGleich, Allokator>& lhs,

                 const std::unordered_multiset<Schlüssel, Hash, SchlüsselGleich, Allokator>& rhs );
(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_eq1lhs_eq2), die aus lhs.equal_range(lhs_eq1) erhalten wird, hat eine entsprechende Gruppe äquivalenter Elemente im anderen Container [rhs_eq1rhs_eq2), die aus rhs.equal_range(rhs_eq1) erhalten wird und die folgenden Eigenschaften aufweist:

Das Verhalten ist undefiniert, wenn Schlüssel nicht EqualityComparable ist.

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 != wird aus operator== synthetisiert.

(seit C++20)

[bearbeiten] Parameter

lhs, rhs - Zu vergleichende ungeordnete Container.

[bearbeiten] Rückgabewert

1) true, wenn die Inhalte der Container gleich sind, andernfalls false.
2) true, wenn die Inhalte der Container nicht gleich sind, andernfalls false.

[bearbeiten] Komplexität

Proportional zu ΣSi2 Aufrufe von operator== auf value_type, Aufrufe der vom Prädikat key_eq zurückgegebenen, und Aufrufe des Hashers, der von hash_function zurückgegeben wird, im Durchschnittsfall, wobei S die Größe der i-ten Gruppe äquivalenter Schlüssel ist. Im Worst-Case proportional zu N2, wobei N die Größe des Containers ist. Der Durchschnittsfall wird proportional zu N, wenn die Elemente innerhalb jeder Gruppe äquivalenter Schlüssel in derselben Reihenfolge angeordnet sind (was passiert, wenn die Container Kopien voneinander sind).