Libreria di algoritmi C ++ - funzione find_if_not ()

Descrizione

La funzione C ++ std::algorithm::find_if_not()trova l'ultima occorrenza dell'elemento che soddisfa la condizione. Utilizza un predicato unario per specificare la condizione.

Dichiarazione

Di seguito è riportata la dichiarazione per std :: algoritmo :: find_if_not () modulo std :: intestazione algoritmo.

C ++ 11

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

Parametri

  • first - Input iteratore alla posizione iniziale.

  • last - Iteratore finale alla posizione finale.

  • pred - Un predicato unario che accetta un argomento e restituisce bool.

Valore di ritorno

restituisce un iteratore al primo elemento nell'intervallo (primo, ultimo) per il quale il predicato unario restituisce false. Se non viene trovato alcun elemento di questo tipo, la funzione restituisce last.

Eccezioni

Genera un'eccezione se il predicato o un'operazione su un iteratore genera un'eccezione.

Tieni presente che i parametri non validi causano un comportamento indefinito.

Complessità temporale

Lineare.

Esempio

Il seguente esempio mostra l'utilizzo della funzione std :: algoritmo :: 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;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

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