Related Articles

Related Articles

std::equal_to in C++ with Examples
  • Last Updated : 01 May, 2020

The std::equal_to allows the equality comparison to be used as a function, which means that it can be passed as an argument to templates and functions. This is not possible with the equality operator == since operators cannot be passed as parameters.

Header File:

#include <functional.h>

Template Class:

template struct equal_to : binary_function
{
 
  // Declaration of the equal operation
  bool operator() (const T& x,
                   const T& y) 
       const 
  { 
     return x==y;
  }

  // Type of first parameter
  typedef T first_argument_type;

  // Type of second parameter
  typedef T second_argument_type;

  // The result is returned
  // as bool type
  typedef bool result_type;
}

Syntax:

std::equal_to <int> ()

Parameter: This function accepts the type of the arguments T, as the parameter, to be compared by the functional call.



Return Type: It return a boolean value depending upon condition(let a & b are 2 element):

  • True: If a is equals to b.
  • False: If a is not equals to b.

Below is the illustration of std::equal_to in C++:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ code to illustrate std::equal_to
#include <algorithm>
#include <functional>
#include <iostream>
#include <vector>
using namespace std;
  
// Driver Code
int main()
{
    // Intialise vectors
    vector<int> v1 = { 50, 55, 60, 
                       65, 70 };
    vector<int> v2 = { 50, 55, 85, 
                       65, 70 };
  
    // Declaring pointer of pairs
    pair<vector<int>::iterator,
         vector<int>::iterator>
        pairs1;
  
    // Use mismatch() function to
    // search first mismatch between
    // v1 and v2
    pairs1 = mismatch(v1.begin(), v1.end(),
                      v2.begin(),
                      equal_to<int>());
  
    // Print the mismatch pair
    cout << "The 1st mismatch element"
         << " of 1st container : ";
    cout << *pairs1.first << endl;
  
    cout << "The 1st mismatch element"
         << " of 2nd container : ";
    cout << *pairs1.second << endl;
  
    return 0;
}

chevron_right


Output:

The 1st mismatch element of 1st container : 60
The 1st mismatch element of 2nd container : 85

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate std::equals_to
#include <algorithm>
#include <functional>
#include <iostream>
using namespace std;
  
// Template
template <typename A, typename B, 
          typename U = std::equal_to<int> >
  
// Function to check if a = b or not
bool f(A a, B b, U u = U())
{
    return u(a, b);
}
  
// Driver Code
int main()
{
    int X = 1, Y = 2;
  
    // If X is equals to Y or not
    cout << std::boolalpha;
    cout << f(X, Y) << '\n';
  
    X = -1, Y = -1;
  
    // If X is equals to Y or not
    cout << f(X, Y) << '\n';
  
    return 0;
}

chevron_right


Output:

false
true

Reference: http://www.cplusplus.com/reference/functional/equal_to/

Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :