最大值优先级队列:
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int, vector<int>> pq;//默认的是最大值优先级队列
pq.push(10);
pq.push(5);
pq.push(-1);
pq.push(20);
cout << "优先级队列里一共有: " << pq.size() << " 个数据" << endl;
cout << pq.top() << endl;
while (!pq.empty())
{
cout << "从优先级队列里删除:" << pq.top()<< endl;
pq.pop();//优先级队列中,每次删除的都是最大的,队首的数据
}
cout << "优先级队列里一共有: " << pq.size() << " 个数据" << endl;
return 0;
}
最小值优先级队列:
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int, deque<int>,greater<int>> pq2;//添加第三个参数greater为最小值优先级队列
cout <<endl<<endl<< "下面是最小值优先级队列: " << endl;
pq2.push(10);
pq2.push(5);
pq2.push(-1);
pq2.push(20);
cout << pq2.top() << endl;
while (!pq2.empty())
{
cout << "从优先级队列里删除:" << pq2.top() << endl;
pq2.pop();
}
cout << "优先级队列里一共有: " << pq.size() << " 个数据" << endl;
return 0;
}