Bibliothèque de files d'attente C ++ - fonction priority_queue ()

La description

Le constructeur de plage C ++ std::priority_queue::priority_queue() construit une priority_queue avec autant d'éléments dans la plage du premier au dernier.

Déclaration

Voici la déclaration de l'en-tête std :: priority_queue :: priority_queue () du constructeur std :: queue.

C ++ 98

template <class InputIterator>
priority_queue(InputIterator first, InputIterator last,
              const Compare& comp = Compare(),
              const Container& ctnr = Container());

C ++ 11

template <class InputIterator>
priority_queue(InputIterator first, InputIterator last,
               const Compare& comp, const Container& ctnr);

Paramètres

  • compare - Objet de comparaison à utiliser pour ordonner la priority_queue.

    Cela peut être un pointeur de fonction ou un objet fonction qui peut comparer ses deux arguments.

  • cntr - Objet conteneur.

    Il s'agit du type de conteneur sous-jacent pour priority_queue et ses valeurs par défaut sont vector.

  • first - Entrez l'itérateur à la position initiale dans la plage.

  • last - Entrez itertor à la position finale dans la plage.

Valeur de retour

Le constructeur ne renvoie jamais de valeur.

Des exceptions

Cette fonction membre ne lève jamais d'exception.

Complexité temporelle

Linéaire ie O (n)

Exemple

L'exemple suivant montre l'utilisation du constructeur std :: priority_queue :: priority_queue ().

#include <iostream>
#include <queue>
#include <vector>

using namespace std;

int main(void) {
   vector<int> v = {3, 1, 5, 2, 4};
   priority_queue<int> q(v.begin(), v.begin() + 4);

   cout << "Queue contents are" << endl;
   while (!q.empty()) {
      cout << q.top() << endl;
      q.pop();
   }

   return 0;
}

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

Queue contents are
5
3
2
1