function template
<unordered_set>

std::operators (unordered_multiset)

equality (1)
template <class Key, class Hash, class Pred, class Alloc>
  bool operator== ( const unordered_multiset<Key,Hash,Pred,Alloc>& lhs,
                    const unordered_multiset<Key,Hash,Pred,Alloc>& rhs );
inequality (2)
template <class Key, class Hash, class Pred, class Alloc>
  bool operator!= ( const unordered_multiset<Key,Hash,Pred,Alloc>& lhs,
                    const unordered_multiset<Key,Hash,Pred,Alloc>& rhs );
Relational operators for unordered_multiset
These overloaded global operator functions perform the appropriate equality or inequality comparison operation between the unordered_multiset containers lhs and rhs.

The procedure for the equality comparison is as follows (stopping at any point if the procedure finds a conclusive answer):

Parameters

lhs, rhs
unordered_multiset containers (to the left- and right-hand side of the operator, respectively), having both the same template parameters (Key, Hash, Pred and Alloc).

Return Value

true if the condition holds, and false otherwise.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// unordered_multiset comparisons
#include <iostream>
#include <string>
#include <unordered_set>

int main ()
{
  std::unordered_multiset<std::string>
    a = {"AAPL","MSFT","GOOG"},
    b = {"MSFT","GOOG","AAPL"},
    c = {"MSFT","GOOG","AAPL","AAPL"};

  if (a==b) std::cout << "a and b are equal\n";
  if (b!=c) std::cout << "b and c are not equal\n";

  return 0;
}


Output:
a and b are equal
b and c are not equal

Complexity

Average case: linear in size.
Worst case: quadratic in size.

Iterator validity

No changes.

See also