priority queue stl
O privire aprofundată asupra cozii prioritare în STL.
În această serie explicită C ++, am văzut stive și cozi în tutorialul anterior.
În acest tutorial, vom discuta încă un alt container specializat în STL, adică coadă prioritară.
cum se deschid fișiere .swf pe Windows
O coadă prioritară este un adoptator de containere în STL. O coadă prioritară este un container care are elementele aranjate în ordine descrescătoare astfel încât primul element să fie întotdeauna cel mai mare element din coadă.
=> Vizitați aici pentru lista completă de tutoriale C ++.
Ce veți învăța:
Prezentare generală
Spre deosebire de coada normală care împinge elementul în funcție de ordinea FIFO, coada de prioritate are elemente în ordine nedescrescătoare și are o prioritate (ordine fixă) pentru fiecare element
Coada prioritară poate fi vizualizată într-un mod similar ca o structură de date „max heap” în C ++.
Sintaxa generală a cozii de prioritate este:
întrebări de interviu pe html și css
priority_queue queue_name; Deci, dacă dorim să definim o coadă prioritară de tip int, o putem defini după cum urmează:
priority_queue mypqueue; Coadă prioritară - Operațiuni
Să vedem mai jos operațiunile acceptate de coada de prioritate.
- Apăsați: Inserează un element în coada de prioritate. În timp ce introduceți elemente, prioritatea elementelor este menținută.
- Pop: Elimină elementul cel mai de sus din coada de prioritate.
- Top: Returnează elementul cel mai de sus din coada de prioritate, adică cel mai mare element din coada de prioritate.
- Gol: Verifică dacă coada de prioritate este goală.
- Mărimea: Returnează dimensiunea cozii prioritare, adică numărul de elemente din coada prioritară.
Să scriem un program pentru a demonstra utilizarea acestor funcții / operații.
#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; }Ieșire:
Coadă prioritară după introducerea valorii 60: 60 3 1
Coadă prioritară după introducerea valorii 5: 60 5 3 1
Coada prioritară mypq este: 60 10 5 3 1
mypq.size (): 5
mypq.top (): 60
mypq.pop (): 10 5 3 1
în unix, permisiunea de acces w (write) permite

Vă rugăm să verificați cu atenție rezultatul pentru a înțelege coada prioritară. În primul rând, împingem valorile 1,3,60 așa cum se arată în prima linie a ieșirii. Apoi împingem valoarea 5 în coada de prioritate. După aceea, se afișează coada de prioritate. Rețineți că, deși valoarea 5 este împinsă după 60, partea de sus a cozii de prioritate este încă 60.
Din nou împingem o altă valoare 10 și totuși, partea de sus a cozii de prioritate este 60. Acest lucru se datorează faptului că, în timp ce împingem elemente, ordinea sau prioritatea elementelor este menținută astfel încât cel mai mare element să fie întotdeauna în partea de sus.
Concluzie
Totul a fost despre implementarea cozii prioritare în STL. În următorul nostru tutorial, vom afla mai multe despre containerele STL precum map și set.
=> Faceți clic aici pentru seria Absolute C ++ Training.