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

La description

La fonction C ++ std::algorithm::find_if_not()trouve la dernière occurrence de l'élément qui satisfait la condition. Il utilise un prédicat unaire pour spécifier la condition.

Déclaration

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

C ++ 11

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

Paramètres

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

  • last - Itérateur final à la position finale.

  • pred - Un prédicat unaire qui accepte un argument et retourne bool.

Valeur de retour

renvoie un itérateur vers le premier élément de la plage (premier, dernier) pour lequel le prédicat unaire renvoie false. Si aucun élément de ce type n'est trouvé, la fonction renvoie le dernier.

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.

Exemple

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

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

using namespace std;

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

int main(void) {
   vector<int> v = {2, 4, 61, 8, 10};
   auto it = find_if_not(v.begin(), v.end(), unary_pred);

   if (it != end(v))
      cout << "First odd number is " << *it << endl;

   v = {2, 4, 6, 8, 10};

   it = find_if_not(v.begin(), v.end(), unary_pred);

   if (it == end(v))
      cout << "Only enven elements present in the sequence." << endl;

   return 0;
}

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

First odd number is 61
Only enven elements present in the sequence.