Biblioteca de algoritmos de C ++ - función find_if_not ()

Descripción

La función C ++ std::algorithm::find_if_not()busca la última aparición del elemento que satisface la condición. Utiliza un predicado unario para especificar la condición.

Declaración

A continuación se muestra la declaración de la función std :: algorítm :: find_if_not () del encabezado std :: algorítmo.

C ++ 11

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

Parámetros

  • first - Iterador de entrada a la posición inicial.

  • last - Iterador final a la posición final.

  • pred - Un predicado unario que acepta un argumento y devuelve bool.

Valor devuelto

devuelve un iterador al primer elemento del rango (primero, último) para el que el predicado unario devuelve falso. Si no se encuentra tal elemento, la función regresa al final.

Excepciones

Lanza una excepción si el predicado o una operación en un iterador arroja una excepción.

Tenga en cuenta que los parámetros no válidos provocan un comportamiento indefinido.

Complejidad del tiempo

Lineal.

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: algorítm :: 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

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