Namensräume
Varianten
Aktionen

operator==,!=(std::unordered_set)

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

bool operator==( const std::unordered_set<Key, Hash, KeyEqual, Alloc>& lhs,

                 const std::unordered_set<Key, Hash, KeyEqual, Alloc>& rhs );
(1)
template< class Key, class Hash, class KeyEqual, class Alloc >

bool operator!=( const std::unordered_set<Key, Hash, KeyEqual, Alloc>& lhs,

                 const std::unordered_set<Key, Hash, KeyEqual, Alloc>& 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 Key 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

Proportionale zu *N* Aufrufen 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, im schlimmsten Fall quadratisch proportional zu *N*2, wobei *N* die Größe des Containers ist.