(C++17) | ||||
Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
Associative | ||||
Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
Views | ||||
(C++20) | ||||
(C++23) | ||||
Tables | ||||
Iterator invalidation | ||||
Member function table | ||||
Non-member function table |
std::unordered_set
Member types | ||||||
Member functions | ||||||
Non-member functions | ||||||
| ||||||
Deduction guides(C++17) |
template<class Key,class Hash,class KeyEqual,class Alloc> bool operator==(conststd::unordered_set<Key, Hash, KeyEqual, Alloc>& lhs, | (1) | |
template<class Key,class Hash,class KeyEqual,class Alloc> bool operator!=(conststd::unordered_set<Key, Hash, KeyEqual, Alloc>& lhs, | (2) | (until C++20) |
Compares the contents of two unordered containers.
The contents of two unordered containerslhs andrhs are equal if the following conditions hold:
[
lhs_eq1,
lhs_eq2)
obtained fromlhs.equal_range(lhs_eq1) has a corresponding group of equivalent elements in the other container[
rhs_eq1,
rhs_eq2)
obtained fromrhs.equal_range(rhs_eq1), that has the following properties:The behavior is undefined ifKey
is notEqualityComparable.
The behavior is also undefined ifhash_function()
andkey_eq()
do(until C++20)key_eq()
does(since C++20) not have the same behavior onlhs andrhs or ifoperator== forKey
is not a refinement of the partition into equivalent-key groups introduced bykey_eq()
(that is, if two elements that compare equal usingoperator== fall into different partitions).
The | (since C++20) |
lhs, rhs | - | unordered containers to compare |
Proportional toN calls tooperator== onvalue_type
, calls to the predicate returned bykey_eq
, and calls to the hasher returned byhash_function
, in the average case, proportional toN2 in the worst case whereN is the size of the container.