Priority queue

Z RNO-Wiki

Priority_queue (czyt. "kiu") to implementacja kopca w STL-u (bibliotece standardowej C++). Obsługuje ona standardowe polecenia o jakich mówimy przy kopcu, czyli

  • insert - wstawianie do kopca w priority_queue nazwana push
  • maximum - zwraca największy element w priority_queue nazwane top
  • extract-max - usuwa największy element z kopca w STL-u nazwane pop. Uwaga: ta funkcja nie zwraca wartości maximum - jest typu void
  • build-max-heap - buduje kopiec z tablicy - w STL-u jest to konstruktor, któremu podajemy iteratory wskazujące na początek i koniec (tak jak w funkcji sort)



Poniżej przykład korzystania z priority_queue

#include<iostream>
#include<queue>
using namespace std;
int main()
{
        int A[] = {10, 8, 23, 9, 34, 23, 42, 32, 54, 90, 57, 54, 12, 13, 21, 31};
        int n = sizeof( A) / sizeof( int); //w ten sposób uzyskujemy ilość elementów w tablicy
        int x;
        priority_queue<int> kopiec(A, A + n); // budujemy kopiec z tablicy
        cout << kopiec.top() << endl; //wypisuje element z góry
        cin >> x;
        kopiec.push( x); //wstawiamy x do kopca
        while( !kopiec.empty() ) //dopóki w kopcu coś się znajduje
        {
                cout << kopiec.top() << endl; //wypisuj maksymalny element z kopca
                kopiec.pop(); //i go usuń
        }
}
Osobiste