Libreria di algoritmi C ++ - funzione find_if ()
Descrizione
La funzione C ++ std::algorithm::find_if()trova la prima occorrenza dell'elemento che soddisfa la condizione. Utilizza un predicato unario per specificare la condizione.
Dichiarazione
Di seguito è la dichiarazione per std :: algoritmo :: find_if () modulo std :: intestazione algoritmo.
C ++ 98
template <class InputIterator, class UnaryPredicate>
InputIterator find_if (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 vero. 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 cioè O (n)
Esempio
L'esempio seguente mostra l'utilizzo della funzione std :: algoritmo :: find_if ().
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool unary_pre(int n) {
return ((n % 2) == 0);
}
int main(void) {
vector<int> v = {10, 2, 3, 4, 5};
auto it = find_if(v.begin(), v.end(), unary_pre);
if (it != end(v))
cout << "First even number is " << *it << endl;
v = {1};
it = find_if(v.begin(), v.end(), unary_pre);
if (it == end(v))
cout << "Only odd elements present in the sequence." << endl;
return 0;
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
First even number is 10
Only odd elements present in the sequence.