Biblioteca de algoritmos C ++ - Función is_heap ()

Descripción

La función C ++ std::algorithm::is_heap()comprueba si la secuencia dada es el montón máximo o no. Utiliza una función binaria para la comparación.

Declaración

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

C ++ 11

template <class RandomAccessIterator, class Compare>
bool is_heap(RandomAccessIterator first,RandomAccessIterator last,Compare comp);

Parámetros

  • first - Iterador de acceso aleatorio a la posición inicial.

  • last - Iterador de acceso aleatorio a la posición final.

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

Valor devuelto

Devuelve verdadero si la secuencia dada es el montón máximo; de lo contrario, devuelve falso.

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 ().

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

using namespace std;

bool ignore_case(char a, char b) {
   return (tolower(a) == tolower(b));
}

int main(void) {
   vector<char> v = {'E', 'd', 'C', 'b', 'A'};
   bool result;

   result = is_heap(v.begin(), v.end());

   if (result == false)
      cout << "Given sequence is not a max heap." << endl;

   result = is_heap(v.begin(), v.end(), ignore_case);

   if (result == true)
      cout << "Given sequence is a max heap." << endl;
}

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

Given sequence is not a max heap.
Given sequence is a max heap.