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.