std::is_heap( ) en C++ con ejemplos

La función std::is_heap() en la biblioteca de plantillas estándar de C++ se usa para verificar si un rango dado de elementos forma Max Heap o no. Devuelve True cuando los rangos de elementos dados forman Max Heap, de lo contrario, devuelve False.

Archivo de cabecera:

#include <algorithm>

Sintaxis:

is_heap(first, last)

Parámetro: Toma dos parámetros, los iteradores apuntan hacia el primer y último elemento del rango.

Valor devuelto: La función devuelve el siguiente valor:

  • Verdadero: si los elementos en el rango [primero, último] forman un Max Heap.
  • Falso: si los elementos en el rango [primero, último] no forman un Max Heap.

A continuación se muestra el programa para ilustrar std::is_heap() :

Programa 1:

// C++ program to illustrate
// the std::is_heap()
  
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
  
// Driver Code
int main()
{
  
    // Given list of numbers
    vector<int> arr = { 3, 1, 5, 1, 9, 8 };
  
    // Check if arr[] forms max-heap or not
    bool isHeap = is_heap(arr.begin(),
                          arr.end());
  
    if (isHeap) {
        cout << "Forms a Max Heap";
    }
    else {
        cout << "Doesn't forms a Max Heap";
    }
}
Producción:

Doesn't forms a Max Heap

Programa 2:

// C++ program to illustrate the std::is_heap()
  
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
  
// Driver Code
int main()
{
  
    // Given list of numbers
    vector<int> arr = { 3, 1, 5, 1, 9, 8 };
  
    // Check if arr[] forms max-heap or not
    bool isHeap = is_heap(arr.begin(),
                          arr.end());
  
    // isHeap is false then make Max Heap
    // using in built function make_heap
    if (!isHeap) {
        make_heap(arr.begin(), arr.end());
    }
  
    // Else already a heap
    else {
        cout << "Already Max Heap\n";
    }
  
    // Print all the elements of arr
    // after make Max Heap
    for (auto& it : arr) {
        cout << it << ' ';
    }
    return 0;
}
Producción:

9 3 8 1 1 5

Referencia: http://www.cplusplus.com/reference/algorithm/is_heap/

Publicación traducida automáticamente

Artículo escrito por kivi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *