priority queue stl
Una mirada en profunditat a la cua de prioritat a STL.
En aquesta sèrie C ++ explícita, hem vist piles i cues al tutorial anterior.
En aquest tutorial, discutirem un altre contenidor especialitzat en STL, és a dir, la cua de prioritat.
sas programació de preguntes i respostes d’entrevistes
Una cua prioritària és l'adopció de contenidors a STL. Una cua prioritària és un contenidor que té els elements disposats en ordre no decreixent, de manera que el primer element és sempre l'element més gran de la cua.
=> Visiteu aquí la llista completa de tutorials de C ++.
Què aprendreu:
com obrir un fitxer torrent
Visió general
En contrast amb la cua normal que empeny i obre l'element segons l'ordre FIFO, la cua de prioritat té elements en ordre no decreixent i té una prioritat (ordre fix) per a cada element
La cua de prioritat es pot veure de manera similar a una estructura de dades de 'màxim munt' a C ++.
La sintaxi general de la cua de prioritat és:
priority_queue queue_name;
Per tant, si volem definir una cua prioritària de tipus int, la podem definir de la següent manera:
priority_queue mypqueue;
Cua de prioritat: operacions
Vegem a continuació les operacions admeses per la cua de prioritats.
- Empenta: Insereix un element a la cua de prioritat. Mentre s’insereixen elements, es manté la prioritat dels elements.
- pop: Elimina l'element superior de la cua de prioritats.
- Superior: Retorna l'element més alt de la cua de prioritat, és a dir, l'element més alt de la cua de prioritat.
- Buit: Comprova si la cua de prioritat està buida.
- Mida: Retorna la mida de la cua de prioritat, és a dir, el nombre d'elements de la cua de prioritat.
Escrivim un programa per demostrar l’ús d’aquestes funcions / operacions.
#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; }
Sortida:
Cua de prioritat després d'inserir el valor 60: 60 3 1
Cua de prioritat després d’inserir el valor 5: 60 5 3 1
La cua de prioritat mypq és: 60 10 5 3 1
mypq.size (): 5
mypq.top (): 60
mypq.pop (): 10 5 3 1
Comproveu atentament la sortida per entendre la cua de prioritat. En primer lloc, empenyem els valors 1,3,60 tal com es mostra a la primera línia de la sortida. A continuació, premem el valor 5 a la cua de prioritat. Després d'això, es mostra la cua de prioritat. Tingueu en compte que, tot i que el valor 5 s’imprimeix després de 60, la part superior de la cua de prioritat continua sent 60.
com fer un pla de proves
Una vegada més, premem un altre valor 10 i, tot i així, la part superior de la cua de prioritats és 60. Això és degut a que mentre es premen els elements, l'ordre o prioritat dels elements es manté de manera que l'element més gran sempre està a la part superior.
Conclusió
Tot es tractava de la implementació de cues prioritàries a STL. Al nostre següent tutorial, aprendrem més sobre contenidors STL com map i set.
=> Feu clic aquí per obtenir la sèrie de formació Absolute C ++.