template< class Key, class T, class Hash, class KeyEqual, class Allocator > bool operator==( const unordered_multimap<Key,T,Hash,KeyEqual,Allocator>& lhs, const unordered_multimap<Key,T,Hash,KeyEqual,Allocator>& rhs ); | (1) | |
template< class Key, class T, class Hash, class KeyEqual, class Allocator > bool operator!=( const unordered_multimap<Key,T,Hash,KeyEqual,Allocator>& lhs, const unordered_multimap<Key,T,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
or T
are 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
ΣSi2 comparisons of the keys in the average case, where S is the size of the ith equivalent key group. N2 comparisons of the keys in the worst case, where N is the size of the container.
Please login to continue.