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

La description

Le constructeur de déplacement C ++ std::priority_queue::priority_queue() construit la priorité_queue avec le contenu des autres en utilisant la sémantique de déplacement.

Déclaration

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

C ++ 11

explicit priority_queue(const Compare& comp = Compare(),
                        Container&& ctnr = Container());

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.

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 :: priotiry_queue :: priority_queue ().

#include <iostream>
#include <queue>

using namespace std;

int main(void) {
   auto it = {3, 1, 5, 2, 4};
   priority_queue<int> q1(less<int>(), it);
   priority_queue<int> q2(move(q1));

   cout << "Contents of q1 after move operation" << endl;
   while (!q1.empty()) {
      cout << q1.top() << endl;
      q1.pop();
   }

   cout << endl;

   cout << "Contents of q2 after move operation" << endl;
   while (!q2.empty()) {
      cout << q2.top() << endl;
      q2.pop();
   }

   return 0;
}

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

Contents of q1 after move operation

Contents of q2 after move operation
5
4
3
2
1