(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.