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

La description

La fonction C ++ std::algorithm::all_of()Renvoie vrai si le prédicat renvoie vrai pour tous les éléments de la plage du premier au dernier . Si range est vide, alors true est également renvoyé, sinon il renvoie false.

Déclaration

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

C ++ 11

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

Paramètres

  • first - Entrer les itérateurs aux positions initiales dans une séquence.

  • last - Entrer les itérateurs pour les positions finales dans une séquence.

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

Valeur de retour

Renvoie true si le prédicat renvoie true pour tous les éléments de la plage ou si la plage est vide, sinon renvoie false.

Des exceptions

Lève une exception si un 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 :: all_of ().

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

using namespace std;

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

int main(void) {
   vector<int> v = {2, 4, 6, 8, 10};
   bool result;

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

   if (result == true)
      cout << "Vector contains all even numbers." << endl;

   v[0] = 1;

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

   if (result == false)
      cout << "Vector doesn't contain all even numbers." << endl;

   return 0;
}

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

Vector contains all even numbers.
Vector doesn't contain all even numbers.