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

La description

La fonction C ++ std::algorithm::any_of()Renvoie vrai si le prédicat renvoie vrai pour l'un des é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 :: any_of () sous forme d'en-tête std :: algorithme.

C ++ 11

template <class InputIterator, class UnaryPredicate>
bool any_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 l'un des éléments de la plage ou si la plage est vide, sinon renvoie false.

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 :: any_of ().

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

using namespace std;

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

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

   result = any_of(v.begin(), v.end(), is_odd);

   if (result == true)
      cout << "Vector contains at least one odd number." << endl;

   v[4] = 10;

   result = any_of(v.begin(), v.end(), is_odd);

   if (result == false)
      cout << "Vector contains all even number." << endl;

   return 0;
}

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

Vector contains at least one odd number.
Vector contains all even number.