Biblioteca de algoritmos C ++ - Función is_heap_until ()
Descripción
La función C ++ std::algorithm::is_heap_until()encuentra el primer elemento de la secuencia que viola la condición de montón máximo. Utiliza el operador < para comparar.
Declaración
A continuación se muestra la declaración de la función std :: algorítm :: is_heap_until () del encabezado std :: algorítmico.
C ++ 11
template <class RandomAccessIterator>
RandomAccessIterator is_heap_until(RandomAccessIterator first,
RandomAccessIterator last);
Parámetros
first - Iterador de acceso aleatorio a la posición inicial.
last - Iterador de acceso aleatorio a la posición final.
Valor devuelto
Devuelve un iterador al primer elemento que viola la condición de montón máximo. Si la secuencia completa es un montón máximo válido, vuelve al final .
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 :: is_heap_until ().
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void) {
vector<int> v = {4, 3, 5, 1, 2};
auto result = is_heap_until(v.begin(), v.end());
cout << *result << " is the first element which "
<< "violates the max heap." << endl;
v = {5, 4, 3, 2, 1};
result = is_heap_until(v.begin(), v.end());
if (result == end(v))
cout << "Entire range is valid heap." << endl;
return 0;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
5 is the first element which violates the max heap.
Entire range is valid heap.