Queue (C++)

Ουρά

Βασισμένο σε ένα παράδειγμα από το βιβλίο των Ford και Topp, Data Structures with C++ (Δομές Δεδομένων με C++), σελίδα 387:
// για την χρήση του template queue<T> πρέπει να μπει #include <queue>// για την χρήση cout πρέπει να μπει το #include <iostream>// επίσης στην αρχή πρέπει να μπει using namespace std;queue< char > theQueue; // δημιουργεί μια ουρά δεδομένων (τύπου χαρακτήρα char) με το τίτλο "theQueue" 
                        
theQueue.push('a'); // προσθήκη στην ουρά theQueue του 'a' (η ουρά περιέχει τώρα το 'a')theQueue.push('b'); // προσθήκη στην ουρά theQueue του 'b' (η ουρά περιέχει τώρα το 'a','b')theQueue.push('c'); // προσθήκη στην ουρά theQueue του 'c' (η ουρά περιέχει τώρα το 'a', 'b', 'c')cout << "η ουρά theQueue περιέχει: a b c" << endl << endl;if (!theQueue.empty()) { // έλεγχος αν η ουρά είναι άδεια γιατί τότε δεν έχουν εισαχθεί δεδομένα
    cout << "το ''μπροστινό'' στοιχείο της ουράς είναι το: " << theQueue.front() << endl;  // ... εμφάνιση 'a'
    cout << "το ''πισινό'' στοιχείο της ουράς είναι το: " << theQueue.back() << endl;      // ... εμφάνιση 'c' }while( !theQueue.empty() ) { // όσο η ουρά δεν είναι άδεια...
    cout << "Μέγεθος = " << theQueue.size() << endl;                // ... εμφάνιση του μεγέθους της ουράς
    cout << "Τιμή στην αρχή ουράς = " << theQueue.front() << endl;  // ... εμφάνιση του πρώτου στοιχείου ουράς
    theQueue.pop();                                                 // ... αφαίρεση του στοιχείου αυτού}// Μέγεθος = 3// Τιμή στην αρχή ουράς = a// Μέγεθος = 2// Τιμή στην αρχή ουράς = b// Μέγεθος = 1// Τιμή στην αρχή ουράς = c

Ουρά προτεραιοτήτων

Στην ουρά προτεραιότητας κατά την λειτουργία top() pop() για να επιλεχθεί το στοιχείο με την προτεραιότητα συγκρίνονται όλα τα στοιχεία της ουράς με το τελεστή μικρότερο < και εξάγεται το μεγαλύτερο στοιχείο (μεγαλύτερη προτεραιότητα). Ο προγραμματιστής μπορεί επίσης να ορίσει την δική του συνάρτηση ελέγχου προτεραιότητας (όταν δεν ορίζεται η συνάρτηση αυτή, όπως στο παρακάτω παράδειγμα η προτεραιότητα ως  ελέγεγχεται ως προεπιλογή με το τελεστή μικρότερο <). 
#include <string>     // για τον STL κοντέινερ αλφαριθμητικών#include <queue>      // η ουρά προτεραιοτήτων ορίζεται στο queue#include <iostream>   // για την έξοδο στην κονσόλα μέσω της coutusing namespace std;  // Οι βιβλιοθήκες STL ορίζονται κάτω από το χώρο ονομάτων STLint main() {
    // Δημιουργεί μια ουρά προτεραιότητας για αλφαριθμητικά η οποία είναι κενή.
    priority_queue<string> pq; 

    pq.push("Ttttt");
    pq.push("Aaaaaa");
    pq.push("12");
    pq.push("aaaaa");
    pq.push("BBbbbbb");
    pq.push("ZZZzzzzzr");
    pq.push("Aaaaa");

    // Τα αλφαριθμητικά εξάγονται από την ουρά προτεραιότητας χρησιμοποιώντας τον τελεστή μικρότερου <code><</code> 
    // και η προτεραιότητα είναι η (η σύγκριση γίνεται με βάση την σειρά των χαρακτήρων στην κωδικοποίηση): 
    // "12", "Aaaaa", "Aaaaaa", "BBbbbbb", "Ttttt", "ZZZzzzzzr","aaaaa"
    //  Το "aaaaa" έχει τη μεγαλύτερη προτεραιότητα και το "12" την μικρότερη προτεραιότητα

    while (!pq.empty()) {
       cout << pq.top() << endl;   // Εκτυπώνει το στοιχείο με μεγαλύτερη προτεραιότητα
       pq.pop();                   // Διαγράφει-εξάγει το στοιχείο με την μεγαλύτερη προτεραιότητα
    }

    return 0;}
Η έξοδος του παραπάνω προγράμματος είναι:
aaaaa
ZZZzzzzzr
Ttttt
BBbbbbb
Aaaaaa
Aaaaa
12

Press ENTER to continue.