Biblioteca de algoritmos C ++ - Función find_end ()
Descripción
La función C ++ std::algorithm::find_end()busca la última aparición del elemento. Utiliza operator = para comparar.
Declaración
A continuación se muestra la declaración de la función std :: algorítm :: find_end () desde el encabezado std :: algoritmo.
C ++ 98
template <class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 find_end(ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2);
Parámetros
first1 - Reenviar el iterador a la posición inicial de la primera secuencia.
last1 - Reenviar el iterador a la posición final de la primera secuencia.
first2 - Reenviar el iterador a la posición inicial de la segunda secuencia.
last2 - Reenviar el iterador a la posición final de la segunda secuencia.
Valor devuelto
Devuelve un iterador al primer elemento de la última aparición de (first2, last2) en first1, last1 .
Excepciones
Lanza una excepción si la comparación de elementos 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_end ().
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void) {
vector<int> v1 = {1, 2, 1, 2, 1, 2};
vector<int> v2 = {1, 2};
auto result = find_end(v1.begin(), v1.end(), v2.begin(), v2.end());
if (result != v1.end())
cout << "Last sequence found at location "
<< distance(v1.begin(), result) << endl;
v2 = {1, 3};
result = find_end(v1.begin(), v1.end(), v2.begin(), v2.end());
if (result == v1.end())
cout << "Sequence doesn't present in vector." << endl;
return 0;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
Last sequence found at location 4
Sequence doesn't present in vector.