最大值优先级队列:

#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;
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐