In C++, priority_queue implements heap. Below are some examples of creating priority queue of pair type.
Max Priority queue (Or Max heap) ordered by first element
// C++ program to create a priority queue of pairs. // By default a max heap is created ordered // by first element of pair. #include <bits/stdc++.h> using namespace std; // Driver program to test methods of graph class int main() { // By default a max heap is created ordered // by first element of pair. priority_queue<pair< int , int > > pq; pq.push(make_pair(10, 200)); pq.push(make_pair(20, 100)); pq.push(make_pair(15, 400)); pair< int , int > top = pq.top(); cout << top.first << " " << top.second; return 0; } |
Output :
20 100
Min Priority queue (Or Min heap) ordered by first element
// C++ program to create a priority queue of pairs. // We can create a min heap by passing adding two // parameters, vector and greater(). #include <bits/stdc++.h> using namespace std; typedef pair< int , int > pi; // Driver program to test methods of graph class int main() { // By default a min heap is created ordered // by first element of pair. priority_queue<pi, vector<pi>, greater<pi> > pq; pq.push(make_pair(10, 200)); pq.push(make_pair(20, 100)); pq.push(make_pair(15, 400)); pair< int , int > top = pq.top(); cout << top.first << " " << top.second; return 0; } |
Output :
10 200
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!