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 );
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 );
Compares the contents of two unordered containers.
The contents of two unordered containers
rhs are equal if the following conditions hold:
lhs.size() == rhs.size()
[lhs_eq1, lhs_eq2)obtained from
lhs.equal_range(lhs_eq1)has a corresponding group of equivalent elements in the other container
[rhs_eq1, rhs_eq2)obtained from
rhs.equal_range(rhs_eq1), that has the following properties:
The behavior is undefined if
Key is not EqualityComparable.
The behavior is also undefined if
key_eq() do (until C++20)
key_eq() does (since C++20) not have the same behavior on
rhs or if
Key is not a refinement of the partition into equivalent-key groups introduced by
key_eq() (that is, if two elements that compare equal using
operator== fall into different partitions).
|lhs, rhs||-||unordered containers to compare|
trueif the contents of the containers are equal,
trueif the contents of the containers are not equal,
Proportional to N calls to
value_type, calls to the predicate returned by
key_eq, and calls to the hasher returned by
hash_function, in the average case, proportional to N2 in the worst case where N is the size of the container.
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.