template< class Key, class Hash, class KeyEqual, class Allocator > bool operator==( const unordered_set<Key,Hash,KeyEqual,Allocator>& lhs, const unordered_set<Key,Hash,KeyEqual,Allocator>& rhs ); | (1) | |
template< class Key, class Hash, class KeyEqual, class Allocator > bool operator!=( const unordered_set<Key,Hash,KeyEqual,Allocator>& lhs, const unordered_set<Key,Hash,KeyEqual,Allocator>& rhs ); | (2) |
Compares the contents of two unordered containers.
The contents of two unordered containers lhs
and rhs
are equal if the following conditions hold:
-
lhs.size() == rhs.size()
- each group of equivalent keys
[lhs_eq1, lhs_eq2)
obtained fromlhs.equal_range(lhs_eq1)
has a corresponding group of equivalent keys in the other container[rhs_eq1, rhs_eq2)
obtained fromrhs.equal_range(rhs_eq1)
, that has the following properties:-
std::distance(lhs_eq1, lhs_eq2) == std::distance(rhs_eq1, rhs_eq2)
. -
std::is_permutation(lhs_eq1, lhs_eq2, rhs_eq1) == true
.
-
The behavior is undefined if Key
is not EqualityComparable
.
The behavior is also undefined if Hash and KeyEqual do not have the same behavior on lhs and rhs or if the equality comparison operator for Key is not a refinement of the partition into equivalent-key groups introduced by KeyEqual (that is, if two keys that compare equal fall into different partitions).
Parameters
lhs, rhs | - | unordered containers to compare |
Return value
1)
true
if the contents of the containers are equal, false
otherwise 2)
true
if the contents of the containers are not equal, false
otherwiseComplexity
N comparisons of the keys in the average case, N2 in the worst case, where N is the size of the container.
Please login to continue.