operator==,!=(std::unordered_multiset)

From cppreference.com

 
 
 
 
template< class Key, class Hash, class KeyEqual, class Allocator >

void operator==( unordered_multiset<Key,Hash,KeyEqual,Allocator> &lhs,

                unordered_multiset<Key,Hash,KeyEqual,Allocator> &rhs);
(1)
template< class Key, class Hash, class KeyEqual, class Allocator >

void operator!=( unordered_multiset<Key,Hash,KeyEqual,Allocator> &lhs,

                 unordered_multiset<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 from lhs.equal_range(lhs_eq1) has a corresponding group of equivalent keys 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 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)

[edit] Parameters

lhs, rhs - unordered containers to compare

[edit] 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 otherwise

[edit] Complexity

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