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.

C ++ 98

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

Parámetros

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

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

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;

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

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

   v[3] = 4;

   it = adjacent_find(v.begin(), v.end());

   if (it == v.end())
      cout << "There are no cosecutive identical elemens" << endl;

   return 0;
}

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

First occurrence of consecutive identical element = 3
There are no cosecutive identical elemens