C++ Unordered_map::operator!= Function



The C++ std::unordered_map::operator!= function is used to check whether two unordered_maps are equal or not. if both unordered_map are not equal returns true otherwise false.

If we are comparing unordered_maps with different data types, then the unordered_map::operator!= function will displays a error. It only works with unordered_maps that have the same data type.

Syntax

Following is the syntax of std::unordered_map::operator!= function.

bool operator!=(const unordered_map<Key,T,Hash,Pred,Alloc>& first,
                const unordered_map<Key,T,Hash,Pred,Alloc>& second);

Parameters

  • first − First unordered_map object.
  • second − Second unordered_map object.

Return value

This function returns true if both unordered_map are not equal otherwise false.

Example 1

In the following example, let's see the usage of operator!= function.

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_map<char, int> um1;
   unordered_map<char, int> um2;
   um1.emplace('a', 1);
   if (um1 != um2)
      cout << "Both unordered_maps are not equal" << endl;
   um1 = um2;
   if (!(um1 != um2))
      cout << "Both unordered_maps are equal" << endl;
   return 0;
}

Output

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

Both unordered_maps are not equal
Both unordered_maps are equal

Example 2

Consider the following example, where we are going to compare the both unordered_map that are with the same types but both storing different elements.

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_map<int, int> um1 = {{1, 5}, {2, 6}, {3, 7}, {4, 8}};
   unordered_map<int, int> um2 = {{2, 4}, {3, 1}, {4, 2}, {5, 3}};
   if (um1 != um2)
      cout << "Both unordered_maps are not equal" << endl;
   if (!(um1 != um2))
      cout << "Both unordered_maps are equal" << endl;
   return 0;
}

Output

If we run the above code it will generate the following output −

Both unordered_maps are not equal

Example 3

Let's look at the following example, where we are going to compare both the unordere_map and display the element.

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_map<string, string> um1 = {{"aman", "kumar"}, {"akash", "gupta"}, {"vivek", "verma"}, {"Rahul", "yadav"}};
   unordered_map<string, string> um2 = {{"Vivek", "Verma"}, {"Alok", "Gupta"}, {"Sakshi", "Sharma"}, {"Akash", "Kumar"}};
   if (um1 != um2) {
      cout<<"elements of um1"<<endl;
      for(auto & it: um1){
         cout<<it.first<<" : "<<it.second<<endl;
      }
      cout<<endl;
      cout<<"elements of um2"<<endl;
      for(auto & it: um2){
         cout<<it.first<<" : "<<it.second<<endl;
      }
   }
   if (!(um1 != um2)){
      cout << " elements of both unordered_maps are equal" << endl;
      for(auto& it: um1){
         cout<<it.first<<" : "<<it.second<<endl;
      }
   }
   return 0;
}

Output

Following is the output of the above code −

elements of um1
vivek : verma
Rahul : yadav
akash : gupta
aman : kumar

elements of um2
Akash : Kumar
Sakshi : Sharma
Alok : Gupta
Vivek : Verma

Example 4

Following is the example, where we are going to use the unordered_map::operator!= function and displaying the boolean value.

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_map<string, string> um1 = {{"aman", "kumar"}, {"akash", "gupta"}, {"vivek", "verma"}, {"Rahul", "yadav"}};
   unordered_map<string, string> um2 = {{"Vivek", "Verma"}, {"Alok", "Gupta"}, {"Sakshi", "Sharma"}, {"Akash", "Kumar"}};
   if(um1!=um2)
      cout<<(um1!=um2)<<endl;
   else
      cout<<(!(um1!=um2))<<endl;
   return 0;
}

Output

Output of the above code is as follows −

1
Advertisements