Bibliothèque d'algorithmes C ++ - fonction equal ()

La description

La fonction C ++ std::algorithm::equal()teste si deux ensembles d'éléments sont égaux ou non. La taille des deux ensembles n'a pas besoin d'être égale. Il utilise l' opérateur == pour la comparaison.

Déclaration

Voici la déclaration de l'en-tête std :: algorithm :: equal () de la fonction std :: algorithm.

C ++ 98

template <class InputIterator1, class InputIterator2>
bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2);

Paramètres

  • first1 - Entrer l'itérateur à la position initiale de la première séquence.

  • last1 - Entrer l'itérateur à la position finale de la première séquence.

  • first2 - Entrer l'itérateur à la position initiale de la deuxième séquence.

Valeur de retour

Renvoie true si tous les éléments de la plage de first1 à last1 sont égaux à ceux de la plage commençant à first2, sinon il renvoie false.

Exceptions

Lève une exception si la comparaison d'éléments (ou prédicat) ou une opération sur un itérateur lève une exception.

Veuillez noter que des paramètres non valides provoquent un comportement non défini.

Complexité temporelle

Linéaire dans la distance entre le premier et le dernier .

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: algorithm :: equal ().

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(void) {
   vector<int> v1 = {1, 2, 3};
   vector<int> v2 = {1, 2, 4, 4, 5};
   bool result;

   result = equal(v1.begin(), v1.end(), v2.begin());

   if (result == false)
      cout << "Vector range is not equal." << endl;

   v2[2] = 3;

   result = equal(v1.begin(), v1.end(), v2.begin());

   if (result == true)
      cout << "Vector range is equal." << endl;

   return 0;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

Vector range is not equal.
Vector range is equal.