C++ Unordered_map Library - operator== Function


The C++ function std::unordered_map::operator== tests whether two unordered_maps are equal or not.


Following is the declaration for std::unordered_map::operator== function form std::unordered_map header.


template <class Key, class T, class Hash, class Pred, class Alloc>
bool operator==(const unordered_map<Key,T,Hash,Pred,Alloc>& first,
                const unordered_map<Key,T,Hash,Pred,Alloc>& second


  • first − First unordered_map object.

  • second − Second unordered_map object.

Return value

Returns true if both unordered_map are equal otherwise false.

Time complexity

Linear i.e. O(n) in average case.

Quadratic i.e. O(n2) in worst case.


The following example shows the usage of std::unordered_map::operator== function.

#include <iostream>
#include <unordered_map>

using namespace std;

int main(void) {
   unordered_map<char, int> um1;
   unordered_map<char, int> um2;

   if (um1 == um2)
      cout << "Both unordered_maps are equal" << endl;

   um1.emplace('a', 1);

   if (!(um1 == um2))
      cout << "Both unordered_maps are not equal" << endl;

   return 0;

Let us compile and run the above program, this will produce the following result −

Both unordered_maps are equal
Both unordered_maps are not equal
Kickstart Your Career

Get certified by completing the course

Get Started