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

La description

La fonction C ++ std::algorithm::is_partitioned()teste si la plage est partitionnée ou non. Pour les plages vides, cette fonction renvoie true.

Déclaration

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

C ++ 11

template <class InputIterator, class UnaryPredicate>
bool is_partitioned (InputIterator first, InputIterator last, UnaryPredicate pred);

Paramètres

  • first - Entrer l'itérateur à la position initiale.

  • last - Entrer l'itérateur à la position finale.

  • pred - Une fonction unaire qui accepte un élément et renvoie un booléen.

Valeur de retour

Renvoie true si la plage est partitionnée, sinon elle renvoie false.

Exceptions

Lève une exception si le préd 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.

Exemple

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

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

using namespace std;

bool is_even(int n) {
   return (n % 2 == 0);
}

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

   result = is_partitioned(v.begin(), v.end(), is_even);

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

   partition(v.begin(), v.end(), is_even);

   result = is_partitioned(v.begin(), v.end(), is_even);

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

   return 0;
}

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

Vector is not partitioned.
Vector is paritioned.