C++ STL 优先队列(priority_queue)容器的简单使用

C++ STL 优先队列(priority_queue)容器的简单使用

如果需要用到堆的地方,可以使用C++ STL中的priority_queue实现,比较方便

/*
priority_queue <type, containor, function>
param type	    : 每个元素的数据类型
param containor : 底层用什么结构存储数据,默认是vector
param function 	: 比较大小的函数
return 			: 优先队列对象
*/
priority_queue <int, vector<int>, greater<int> > q;

/*
param x : 向堆中插入元素
return  :  ----
*/
q.push(x);

/*
param  : --
return : 堆顶的元素
*/
q.top();

/*
param  : --
return : --
作用:删除堆顶元素
*/
q.pop();

示例

#include <iostream>
#include <queue>

using namespace std;

int temp[114514];

int main()
{
	priority_queue <int, vector<int>, greater<int> > q;
	
	int n, x;
	cin>>n;
	
	for(int i=0; i<n; i++)
	{
		cin>>x;
		q.push(x);
	}
	
	while(!q.empty())
	{
		cout<<q.top()<<" ";
		q.pop();
	}
	cout<<endl;
	
	return 0;
}

C++ STL 优先队列(priority_queue)容器的简单使用

C++ STL 优先队列(priority_queue)容器的简单使用C++ STL 优先队列(priority_queue)容器的简单使用 AkagiSenpai 发布了30 篇原创文章 · 获赞 1 · 访问量 280 私信 关注
上一篇:


下一篇:HDU 4612 Warm up (边双连通分量+DP最长链)