Biblioteca de algoritmos C ++ - função find_if ()
Descrição
A função C ++ std::algorithm::find_if()encontra a primeira ocorrência do elemento que satisfaz a condição. Ele usa predicado unário para especificar a condição.
Declaração
A seguir está a declaração para o cabeçalho da função std :: algorithm :: find_if () std :: algorithm.
C ++ 98
template <class InputIterator, class UnaryPredicate>
InputIterator find_if (InputIterator first, InputIterator last,
UnaryPredicate pred);
Parâmetros
first - Insira o iterador na posição inicial.
last - Iterador final para a posição final.
pred - Um predicado unário que aceita um argumento e retorna bool.
Valor de retorno
retorna um iterador para o primeiro elemento no intervalo (primeiro, último) para o qual o predicado unário retorna verdadeiro. Se nenhum elemento for encontrado, a função retorna por último .
Exceções
Lança exceção se o predicado ou uma operação em um iterador lança exceção.
Observe que os parâmetros inválidos causam um comportamento indefinido.
Complexidade de tempo
Linear, ou seja, O (n)
Exemplo
O exemplo a seguir mostra o uso da função std :: algorithm :: 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;
}
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -
First even number is 10
Only odd elements present in the sequence.