Bibliothèque d'algorithmes C ++ - Fonction is_heap ()

La description

La fonction C ++ std::algorithm::is_heap()teste si la séquence donnée est le tas maximum ou non. Il utilise une fonction binaire pour la comparaison.

Déclaration

Voici la déclaration de la fonction std :: algorithm :: is_heap () sous forme d'en-tête std :: algorithme.

C ++ 11

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

Paramètres

  • first - Itérateur à accès aléatoire à la position initiale.

  • last - Itérateur d'accès aléatoire à la position finale.

  • comp - Une fonction binaire qui accepte deux arguments et renvoie bool.

Valeur de retour

Renvoie vrai si la séquence donnée est le tas maximum sinon renvoie faux.

Des exceptions

Lève une exception si la comparaison d'éléments ou une opération sur un itérateur lève une exception.

Veuillez noter que des paramètres non valides provoquent un comportement non défini.

Complexité temporelle

Linéaire.

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: algorithm :: 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

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