priority queue stl
Uno sguardo approfondito alla coda prioritaria in STL.
In questa serie C ++ esplicita, abbiamo visto stack e code nel tutorial precedente.
In questo tutorial, discuteremo ancora un altro contenitore specializzato in STL, ovvero la coda di priorità.
come giocare a mkv su pc
Una coda prioritaria è un container adopter in STL. Una coda prioritaria è un contenitore avente gli elementi disposti in ordine non decrescente in modo tale che il primo elemento sia sempre l'elemento più grande nella coda.
=> Visita qui per l'elenco completo dei tutorial C ++.
Cosa imparerai:
quale non è un esempio di data mining?
Panoramica
In contrasto con la coda normale che spinge e sposta l'elemento secondo l'ordine FIFO, la coda di priorità ha elementi in ordine non decrescente e ha una priorità (ordine fisso) per ogni elemento
La coda prioritaria può essere visualizzata in modo simile alla struttura dati 'max heap' in C ++.
La sintassi generale della coda di priorità è:
priority_queue queue_name;
Quindi, se vogliamo definire una coda di priorità di tipo int, possiamo definirla come segue:
priority_queue mypqueue;
Coda prioritaria - Operazioni
Vediamo di seguito le operazioni supportate dalla coda di priorità.
- Spingere: Inserisce un elemento nella coda delle priorità. Durante l'inserimento degli elementi, la priorità degli elementi viene mantenuta.
- Pop: Rimuove l'elemento più in alto dalla coda di priorità.
- Superiore: Restituisce l'elemento più in alto nella coda di priorità, ovvero l'elemento più grande nella coda di priorità.
- Vuoto: Controlla se la coda di priorità è vuota.
- Taglia: Restituisce la dimensione della coda di priorità, ovvero il numero di elementi nella coda di priorità.
Scriviamo un programma per dimostrare l'uso di queste funzioni / operazioni.
#include #include using namespace std; void displaypq(priority_queue pri_queue) { priority_queue pq = pri_queue; while (!pq.empty()) { cout << ' ' << pq.top(); pq.pop(); } cout << '
'; } int main () { priority_queue mypq; mypq.push(1); mypq.push(3); mypq.push(60); cout<<'
Priority queue after inserting value 60: '; displaypq(mypq); mypq.push(5); cout<<'
Priority queue after inserting value 5: '; displaypq(mypq); mypq.push(10); cout << '
The priority queue mypq is : '; displaypq(mypq); cout << '
mypq.size() : ' << mypq.size(); cout << '
mypq.top() : ' << mypq.top(); cout << '
mypq.pop() : '; mypq.pop(); displaypq(mypq); return 0; }
Produzione:
Coda prioritaria dopo aver inserito il valore 60:60 3 1
domande e risposte al colloquio con l'analista della garanzia della qualità
Coda prioritaria dopo aver inserito il valore 5:60 5 3 1
La coda di priorità mypq è: 60 10 5 3 1
mypq.size (): 5
mypq.top (): 60
mypq.pop (): 10 5 3 1
Si prega di controllare attentamente l'output per comprendere la coda di priorità. Innanzitutto, inseriamo i valori 1,3,60 come mostrato nella prima riga dell'output. Quindi inseriamo il valore 5 nella coda delle priorità. Successivamente, viene visualizzata la coda di priorità. Si noti che sebbene il valore 5 venga inserito dopo 60, la parte superiore della coda di priorità è ancora 60.
Ancora una volta premiamo un altro valore 10 e ancora, la parte superiore della coda di priorità è 60. Questo perché mentre spingiamo gli elementi, l'ordine o la priorità degli elementi viene mantenuto in modo tale che l'elemento più grande sia sempre in cima.
Conclusione
Si trattava di implementazione della coda di priorità in STL. Nel nostro prossimo tutorial, impareremo di più sui contenitori STL come map e set.
=> Fare clic qui per la serie di formazione Absolute C ++.