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