Dark Mode On/Off

PRIORITY QUEUE Container in C++ STL

`priority_queue` is just like a normal queue except the element removed from the queue is always the greatest among all the elements in the queue, thus this container is usually used to replicate Max Heap in C++. Elements can be inserted at any order and it have `O(log(n))` time complexity for insertion.

Following is the syntax for creating a priority queue:

``````priority_queue<int> pq;
``````

Member Function of Priority Queue

Following are some of the commonly used functions of Priority Queue Container in STL:

`push` function

This method inserts an element in the priority_queue. The insertion of the elements have time complexity of logarithmic time.

``````#include <iostream>>
#include <queue>

using namespace std;

int main ()
{
priority_queue<int> pq1;

pq1.push(30);  // inserts 30 to pq1 , now top = 30
pq1.push(40);  // inserts 40 to pq1 , now top = 40 ( maxinmum element)
pq1.push(90);  // inserts 90 to pq1 , now top = 90
pq1.push(60);	// inserts 60 to pq1 , top still is 90

return 0;
}``````

`pop` function

This method removes the topmost element from the priority_queue (greatest element) ,reducing the size of the priority queue by 1.

``````#include <iostream>>
#include <queue>

using namespace std;

int main ()
{
priority_queue<int> pq1;

pq1.push(30);  // inserts 30 to pq1 , now top = 30
pq1.push(40);  // inserts 40 to pq1 , now top = 40 ( maxinmum element)
pq1.push(90);  // inserts 90 to pq1 , now top = 90
pq1.push(60);	// inserts 60 to pq1 , top still is 90

pq1.pop();  // removes 90 ( greatest element in the queue

return 0;
}``````

`top` function

This method returns the element at the top of the priority_queue which is the greatest element present in the queue.

`empty` and `size` functions

`size()` returns the number of element present in the priority _queue, whereas `empty()` returns Boolean true if the priority_queue is empty else Boolean false is returned.

`swap` function

This method swaps the elements of two priority_queue.