Bibliothèque d'algorithmes C ++ - Fonction is_permutation ()

La description

La fonction C ++ std::algorithm::is_permutation()teste si une séquence est une permutation d'autres ou non. Il utilise l' opérateur == pour la comparaison.

Déclaration

Voici la déclaration de la fonction std :: algorithm :: is_permutation () sous forme d'en-tête std :: algorithme.

C ++ 11

template <class ForwardIterator1, class ForwardIterator2>
bool is_permutation(ForwardIterator1 first1,ForwardIterator1 last1,
   ForwardIterator2 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 la première plage est la permutation d'une autre, sinon elle renvoie false.

Des exceptions

Lève une exception si la comparaison d'éléments 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

Quadratique.

Exemple

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

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

using namespace std;

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

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

   if (result == true)
      cout << "Both vector contains same elements." << endl;

   v2[0] = 10;

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

   if (result == false)
      cout << "Both vector doesn't contain same elements." << endl;
   return 0;
}

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

Both vector contains same elements.
Both vector doesn't contain same elements.