Selected Reading

C++ Unordered_set::operator==() Function



The C++ std::unordered_set::operator==() function is used to check whether two unordered_sets are equal or not. if both unordered_set are equal returns true otherwise false.

This function checks the size of the unordered_set, if the size is same then it starts comparing the elements of the unordered_set and this function stop comparing when it find the first mismatch.

Syntax

Following is the syntax of std::unordered_set::operator==() function.

bool operator== (const unordered_set<Key,Hash,Pred,Alloc>& lhs, 
                 const unordered_set<Key,Hash,Pred,Alloc>& rhs);

Parameters

  • first − It indicates the First unordered_set.
  • second − It indicates the Second unordered_set.

Return value

This function returns true if both unordered_set are equal otherwise false.

Example 1

Let's look at the following example, where we are going to demonstrate the usage of unordered_set::operator==() function.

#include <iostream>
#include <unordered_set>
using namespace std;
int main(void) {
   unordered_set<char> uSet1;
   unordered_set<char> uSet2;
   if (uSet1 == uSet2)
      cout << "Both unordered_sets are equal" << endl;
   uSet1.emplace('a');
   if (!(uSet1 == uSet2))
      cout << "Both unordered_sets are not equal" << endl;
   return 0;
}

Output

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

Both unordered_sets are equal
Both unordered_sets are not equal

Example 2

Consider the following example, where we are going to create the unordered_set with same elements but in different order and appling the operator==() function to check whether both are equal or not.

#include <iostream>
#include <unordered_set>
using namespace std;
int main(void) {
   unordered_set<int> uSet1 = {3, 2, 1, 4};
   unordered_set<int> uSet2 = {4, 1, 2, 3};
   if (uSet1 == uSet2)
      cout << "Both unordered_sets are equal" << endl;
   return 0;
}

Output

Following is the output of the above code −

Both unordered_sets are equal

Example 3

Following is the another scenario, where we are going to consider the unordered_set of the same type with different elements and applying the operator==() function to check whether both are equal or not.

#include <iostream>
#include <unordered_set>
using namespace std;
int main(void) {
   unordered_set<string> uSet1 = {"tutorialspoint", "India", "PVT", "LTD"};
   unordered_set<string> uSet2 = {"tutorix", "India", "PVT", "LTD"};
   if (uSet1 == uSet2)
      cout << "Both unordered_sets are equal" << endl;
   if (!(uSet1 == uSet2))
      cout << "Both unordered_sets are not equal" << endl;
   return 0;
}

Output

Output of the above code is as follows −

Both unordered_sets are not equal
Advertisements