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