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
true if the contents of the containers are equal, false otherwisetrue 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.