C++ STL Reverse Priority Queue (original) (raw)

Last Updated : 02 Nov, 2022

A priority Queue is an abstract data type that resembles a queue, and each element has a corresponding priority value. Priority queues are built on the top of the max heap and use an array or vector as an internal structure.

In C++ STL, by default, the first element of the queue is the greatest of all elements in the queue and elements are in nonincreasing order. But however, we can make a priority queue having the smallest element at the top as min-heap with the help of greater<data_type> in C++ STL.

Syntax:

priority_queue <data_type, vector, greater> variable_name;

Example:

C++ `

// C++ program to demonstrate priority // queue in reverse order #include #include using namespace std;

int main() { // Initialising the priority queue priority_queue<int, vector, greater > pq;

// Inserting values in priority queue
pq.push(10);
pq.push(30);
pq.push(20);
pq.push(15);
pq.push(25);

cout << "The priority queue in reverse order is : ";

// Printing all elements in priority queue
while(!pq.empty())
{
    cout<<pq.top()<<" ";
    pq.pop();
}

return 0;

}

`

Output

The priority queue in reverse order is : 10 15 20 25 30

Example:

C++ `

// C++ program to demonstrate priority queue in reverse order #include <bits/stdc++.h> using namespace std;

int main() { // Initialising the priority queue priority_queue<string, vector, greater > pq;

// Inserting values in priority queue
pq.push("physics");
pq.push("chemistry");
pq.push("maths");
pq.push("socialstudies");
pq.push("biology");

cout << "The priority queue in reverse order is : ";

// Printing all elements in priority queue
while(!pq.empty())
{
    cout<<pq.top()<<" ";
    pq.pop();
}

return 0;

}

`

Output

The priority queue in reverse order is : biology chemistry maths physics socialstudies

For more information, refer to the article – How to implement Min Heap using STL?