Example 1: priority queue cpp
#include <functional>
#include <queue>
#include <vector>
#include <iostream>
template<typename T> void print_queue(T& q) {
while(!q.empty()) {
std::cout << q.top() << " ";
q.pop();
}
std::cout << '\n';
}
int main() {
std::priority_queue<int> q;
for(int n : {1,8,5,6,3,4,0,9,7,2})
q.push(n);
print_queue(q);
std::priority_queue<int, std::vector<int>, std::greater<int> > q2;
for(int n : {1,8,5,6,3,4,0,9,7,2})
q2.push(n);
print_queue(q2);
auto cmp = [](int left, int right) { return (left ^ 1) < (right ^ 1); };
std::priority_queue<int, std::vector<int>, decltype(cmp)> q3(cmp);
for(int n : {1,8,5,6,3,4,0,9,7,2})
q3.push(n);
print_queue(q3);
}
Example 2: priority queue in c++
priority_queue<int> pq;
priority_queue <int, vector<int>, greater<int> > pq;
#define pp pair<int, int>
priority_queue <pp, vector<pp>, greater<pp> > pq;
Example 3: priority queue stl
#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
int main()
{
priority_queue<int>pq;
int n=5;
while(n--)
{
int val;
cout<<"enter the value you want to insert:"<<endl;
cin>>val;
pq.push(val);
}
priority_queue<int>p;
p.push(100);
p.push(1000);
p.push(3000);
p.push(5000);
pq.swap(p);
while(!pq.empty())
{
cout<<pq.top()<<" ";
pq.pop();
}
return 0;
}