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?