priority queue stl
En grundig titt på prioritetskø i STL.
I denne Explicit C ++ - serien har vi sett stabler og køer i forrige opplæring.
I denne veiledningen vil vi diskutere enda en spesialisert container i STL, dvs. prioritetskø.
java j2ee intervju spørsmål og svar
En prioritert kø er en containeradopter i STL. En prioritetskø er en beholder som har elementene ordnet i ikke-avtagende rekkefølge slik at det første elementet alltid er det største elementet i køen.
=> Besøk her for den komplette C ++ opplæringslisten.
Hva du vil lære:
Oversikt
I motsetning til den normale køen som skyver og spretter elementet i henhold til FIFO-rekkefølge, har prioritetskø elementer i ikke-avtagende rekkefølge og har en prioritet (fast rekkefølge) for hvert element
Prioritetskø kan sees på en lignende måte som en 'max heap' datastruktur i C ++.
Den generelle syntaksen til prioritetskøen er:
priority_queue queue_name;
Så hvis vi vil definere en prioritetskø av typen int, kan vi definere den som følger:
hvordan du konfigurerer junit i formørkelse
priority_queue mypqueue;
Prioritetskø - Operasjoner
La oss se operasjonene som støttes av prioritetskøen nedenfor.
- Trykk: Setter inn et element i prioritetskøen. Mens du setter inn elementer, opprettholdes prioriteten til elementene.
- Pop: Fjerner det øverste elementet fra prioritetskøen.
- Topp: Returnerer det øverste elementet i prioritetskøen, dvs. det største elementet i prioritetskøen.
- Tømme: Sjekker om prioritetskøen er tom.
- Størrelse: Returnerer størrelsen på prioritetskøen, dvs. antall elementer i prioritetskøen.
La oss skrive et program for å demonstrere bruken av disse funksjonene / operasjonene.
#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; }
Produksjon:
Prioritetskø etter innføring av verdi 60: 60 3 1
Prioritetskø etter innføring av verdi 5: 60 5 3 1
Prioriteringskøen mypq er: 60 10 5 3 1
mypq.size (): 5
mypq.top (): 60
mypq.pop (): 10 5 3 1
hvordan åpne json-fil på Windows
Kontroller utdataene nøye for å forstå prioritetskøen. Først skyver vi verdier 1,3,60 som vist i første linje i utgangen. Deretter skyver vi verdien 5 i prioritetskøen. Etter det vises prioritetskøen. Merk at selv om verdien 5 blir presset etter 60, er toppen av prioritetskøen fremdeles 60.
Igjen skyver vi en annen verdi 10 og fremdeles er toppen av prioritetskøen 60. Dette er fordi mens elementene skyves, ordenen eller prioriteten til elementene opprettholdes slik at det største elementet alltid er øverst.
Konklusjon
Dette handlet om implementering av prioritetskø i STL. I vår neste opplæring vil vi lære mer om STL-containere som kart og sett.
=> Klikk her for den absolutte C ++ treningsserien.