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 un prédicat binaire 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, class BinaryPredicate>
bool equal(InputIterator1 first1, InputIterator1 last1,
   InputIterator2 first2, BinaryPredicate pred);

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.

  • pred - Un prédicat binaire qui accepte deux arguments et renvoie un booléen.

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.

Des 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>
#include <string>

using namespace std;

/* Binary predicate which always returns true */
bool binary_pred(string s1, string s2) {
   return true;
}

int main(void) {
   vector<string> v1 = {"one", "two", "three"};
   vector<string> v2 = {"ONE", "THREE", "THREE"};
   bool result;

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

   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 equal.