Biblioteca de algoritmos C ++ - función inplace_merge ()

Descripción

La función C ++ std::algorithm::inplace_merge()fusiona dos secuencias ordenadas en el lugar. Utiliza función binaria; para comparacion.

Declaración

A continuación se muestra la declaración de la función std :: algorítm :: inplace_merge () del encabezado std :: algorítmico.

C ++ 98

template <class BidirectionalIterator, class Compare>
void inplace_merge (BidirectionalIterator first, BidirectionalIterator middle,
   BidirectionalIterator last, Compare comp);

Parámetros

  • first - Iterador bidireccional a la posición inicial de la primera secuencia.

  • middle - Iterador bidireccional a la posición inicial de la segunda secuencia.

  • last - Iterador bidireccional hasta la posición pasada al final de la segunda secuencia.

  • comp - Una función binaria que acepta dos argumentos y devuelve bool.

Valor devuelto

Ninguna

Excepciones

Lanza una excepción si la comparación de elementos o la operación de intercambio 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 :: inplace_merge ().

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

bool descending_sort(int a, int b) {
   return (a > b);
}

int main(void) {
   vector<int> v = {3, 1, 5, 4, 2};

   inplace_merge(v.begin(), v.begin() + 2, v.end(), descending_sort);

   for (auto it = v.begin(); it != v.end(); ++it)
      cout << *it << endl;

   return 0;
}

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

5
4
3
2
1