priority queue stl
Poglobljen pogled na prednostno vrsto v STL.
V tej eksplicitni seriji C ++ smo v prejšnji vadnici videli sklade in čakalne vrste.
V tej vadnici bomo obravnavali še en specializiran vsebnik v STL, to je prednostna vrsta.
kar vidite, je tisto, kar dobite v spletnem graditelju
Prednostna vrsta je sprejemnik vsebnika v STL. Prednostna vrsta je vsebnik z elementi, razporejenimi v ne padajočem vrstnem redu, tako da je prvi element vedno največji element v čakalni vrsti.
=> Obiščite tukaj za celoten seznam vadnic za C ++.
Kaj se boste naučili:
Pregled
V nasprotju z običajno čakalno vrsto, ki potisne in sproži element po vrstnem redu FIFO, ima prednostna vrsta elemente v ne padajočem vrstnem redu in ima prednost (fiksni vrstni red) za vsak element
Prednostno čakalno vrsto si lahko v C ++ ogledate na podoben način kot podatkovno strukturo »največ kup«.
Splošna sintaksa prednostne čakalne vrste je:
priority_queue queue_name;
Torej, če želimo definirati prednostno vrsto vrste int, jo lahko definiramo na naslednji način:
priority_queue mypqueue;
Prednostna vrsta - operacije
Oglejmo si operacije, ki jih podpira prednostna vrsta spodaj.
- Potisni: Vstavi element v prednostno vrsto. Med vstavljanjem elementov se ohrani prednost elementov.
- Pop: Odstrani zgornji element iz prednostne čakalne vrste.
- Na vrh: Vrne najvišji element v prioritetni čakalni vrsti, to je največji element v prednostni vrsti.
- Prazno: Preveri, če je prednostna vrsta prazna.
- Velikost: Vrne velikost prednostne čakalne vrste, tj.število elementov v prednostni vrsti.
Napišimo program, ki bo prikazal uporabo teh funkcij / operacij.
najboljši DVD ripper za Windows 10
#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; }
Izhod:
Prednostna vrsta po vstavitvi vrednosti 60: 60 3 1
Prednostna vrsta po vstavitvi vrednosti 5: 60 5 3 1
Prednostna vrsta mypq je: 60 10 5 3 1
mypq.size (): 5
mypq.top (): 60
mypq.pop (): 10 5 3 1
vstavi vozlišče v binarno drevo java
Prosimo, natančno preverite izhodne podatke, da boste razumeli prednostno vrsto. Najprej potisnemo vrednosti 1,3,60, kot je prikazano v prvi vrstici izhoda. Nato potisnemo vrednost 5 v prednostno vrsto. Po tem se prikaže prednostna vrsta. Upoštevajte, da čeprav je vrednost 5 potisnjena po 60, je vrh prednostne čakalne vrste še vedno 60.
Spet potisnemo drugo vrednost 10 in še vedno je vrh prednostne čakalne vrste 60. To je zato, ker se med potiskanjem elementov ohrani vrstni red ali prednost elementov, tako da je največji element vedno na vrhu.
Zaključek
To je bilo vse o izvajanju prednostne čakalne vrste v STL. V naslednji vadnici bomo izvedeli več o vsebnikih STL, kot sta zemljevid in set.
=> Kliknite tukaj za absolutno serijo usposabljanj C ++.