priority queue stl
Dubinski pregled reda prioriteta u STL-u.
U ovoj eksplicitnoj C ++ seriji vidjeli smo stogove i redove u prethodnom vodiču.
U ovom uputstvu razgovarat ćemo o još jednom specijaliziranom spremniku u STL-u, tj. O redu prioriteta.
kako otvoriti json datoteku na Windowsima
Prioritetni red je usvojitelj spremnika u STL. Prioritetni red je spremnik koji ima elemente poredane prema smanjenom redoslijedu tako da je prvi element uvijek najveći element u redu.
=> Posjetite ovdje za cjelovit popis tutorijala za C ++.
Što ćete naučiti:
Pregled
Za razliku od uobičajenog reda koji gura i iskače element prema FIFO redoslijedu, red prioriteta ima elemente u ne smanjujućem redoslijedu i ima prioritet (fiksni redoslijed) za svaki element
Prioritetni red može se gledati na sličan način kao struktura podataka 'max heap' u C ++.
Opća sintaksa reda prioriteta je:
priority_queue queue_name;
Dakle, ako želimo definirati prioritetni red tipa int, možemo ga definirati na sljedeći način:
priority_queue mypqueue;
Prioritetni red - operacije
Pogledajmo operacije podržane redom prioriteta u nastavku.
- Gurnuti: Umeće element u prioritetni red. Tijekom umetanja elemenata zadržava se prioritet elemenata.
- Pop: Uklanja najviši element iz reda prioriteta.
- Vrh: Vraća najviši element u redu prioriteta, tj. Najveći element u redu prioriteta.
- Prazan: Provjerava je li prioritetni red prazan.
- Veličina: Vraća veličinu reda prioriteta, tj. Broj elemenata u redu prioriteta.
Napišimo program koji će pokazati upotrebu ovih funkcija / operacija.
pl sql intervju i pitanja i odgovori
#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; }
Izlaz:
Prioritetni red nakon umetanja vrijednosti 60: 60 3 1
vr slušalice za xbox one x
Prioritetni red nakon umetanja vrijednosti 5: 60 5 3 1
Prioritetni red mypq je: 60 10 5 3 1
mypq.size (): 5
mypq.top (): 60
mypq.pop (): 10 5 3 1
Molimo pažljivo provjerite izlaz da biste razumjeli red prioriteta. Prvo guramo vrijednosti 1,3,60 kako je prikazano u prvom retku rezultata. Zatim guramo vrijednost 5 u prioritetnom redu. Nakon toga prikazuje se prioritetni red. Imajte na umu da iako je vrijednost 5 gurnuta nakon 60, vrh reda prioriteta i dalje je 60.
Opet guramo još jednu vrijednost 10 i dalje, vrh reda prioriteta je 60. To je zato što se tijekom guranja elemenata redoslijed ili prioritet elemenata održava tako da je najveći element uvijek na vrhu.
Zaključak
Ovdje se sve radilo na primjeni reda prioriteta u STL-u. U sljedećem uputstvu naučit ćemo više o STL spremnicima poput karte i seta.
=> Kliknite ovdje za apsolutnu C ++ seriju treninga.