Open In App

std::equal() in C++

Last Updated : 11 Jun, 2022
Suggest changes
Share
Like Article
Like
Report

std::equal() helps to compares the elements within the range [first_1,last_1) with those within range beginning at first_2. Syntax 1:

template   bool equal (InputIterator1 first1, InputIterator1 last1,  InputIterator2 first2) first_1, last_1 : Initial and final positions of the first sequence. All the elements are present within a range [first_1,last_1) first2 : Initial position of the second sequence. Returns :  true, if all of the elements in both ranges match; otherwise false
CPP
// C++ program illustrating // use of bool equal (InputIterator1 first1, InputIterator1 last1, // InputIterator2 first2)   #include <bits/stdc++.h> int main() {  int v1[] = { 10, 20, 30, 40, 50 };  std::vector<int> vector_1 (v1, v1 + sizeof(v1) / sizeof(int) );  // Printing vector1  std::cout << "Vector contains : ";  for (unsigned int i = 0; i < vector_1.size(); i++)  std::cout << " " << vector_1[i];  std::cout << "\n";  // using std::equal()  // Comparison within default constructor  if ( std::equal (vector_1.begin(), vector_1.end(), v1) )  std::cout << "The contents of both sequences are equal.\n";  else  printf("The contents of both sequences differ."); } 

Output:

Vector contains : 10, 20, 30, 40, 50 The contents of both sequences are equal.

Syntax 2:

template   bool equal (InputIterator1 first1, InputIterator1 last1,  InputIterator2 first2, BinaryPredicate pred); first_1, last_1 : Initial and final positions of the first sequence. All the elements are present within a range [first_1,last_1) first2 : Initial position of the second sequence. pred : Binary function that accepts two elements as argument and returns a value convertible to boolean. Returns :  true, if all of the elements in both ranges match; otherwise false
CPP
// C++ program illustrating // use of bool equal (InputIterator1 first1, InputIterator1 last1, // InputIterator2 first2, BinaryPredicate pred); #include <bits/stdc++.h> bool pred(int i, int j) {  return (i != j); } int main() {  int v1[] = { 10, 20, 30, 40, 50 };  std::vector<int> vector_1 (v1, v1 + sizeof(v1) / sizeof(int) );  // Printing vector1  std::cout << "Vector contains : ";  for (unsigned int i = 0; i < vector_1.size(); i++)  std::cout << " " << vector_1[i];  std::cout << "\n";  // using std::equal()  // Comparison based on pred  if ( std::equal (vector_1.begin(), vector_1.end(), v1, pred) )  std::cout << "The contents of both sequences are equal.\n";  else  printf("The contents of both sequences differ."); } 

Output:

Vector contains : 10, 20, 30, 40, 50 The contents of both sequences differ.

Time complexity: O(n)

Related Articles:


Explore