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

Descripción

La función C ++ std::algorithm::adjacent_find() encuentra la primera aparición de dos elementos consecutivos que son idénticos y devuelve un iterador que apunta al primer elemento si existe un elemento idéntico consecutivamente; de ​​lo contrario, devuelve un iterador que apunta al último elemento.

Declaración

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

template <class ForwardIterator, class BinaryPredicate>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last, BinaryPredicate pred);

Parámetros

  • first - Reenviar iteradores a las posiciones iniciales de la secuencia buscada.

  • last - Reenviar iteradores a las posiciones finales de la secuencia buscada.

  • pred- Esta es una función que toma dos argumentos y devuelve bool .

Valor devuelto

Devuelve un iterador que apunta al primer elemento si existe un elemento idéntico consecutivamente; de ​​lo contrario, devuelve un iterador que apunta al último elemento.

Excepciones

Se lanza una excepción si cualquier objeto de comparación de elementos produce una excepción.

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

Complejidad del tiempo

Lineal en la distancia entre el primero y el último .

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: algorítm :: adyacente_find ().

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool predicate(int a, int b) {
   return (a == b);
}

int main(void) {
   vector<int> v = {1, 2, 3, 3, 4, 5, 5};
   auto it = adjacent_find(v.begin(), v.end());

   if (it != v.end())
      cout << "First occurrence of consecutive identical element = "
         << *it << endl;

   it = adjacent_find(++it, v.end(), predicate);

   if (it != v.end())
      cout << "Second occurrence of consecutive identical element = "
         << *it << endl;

   return 0;
}

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

First occurrence of consecutive identical element = 3
Second occurrence of consecutive identical element = 5