Biblioteca de algoritmos C ++ - função find_if_not ()

Descrição

A função C ++ std::algorithm::find_if_not()encontra a última 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_not () std :: algorithm.

C ++ 11

template <class InputIterator, class UnaryPredicate>
InputIterator find_if_not(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 falso. 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.

Exemplo

O exemplo a seguir mostra o uso da função 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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

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