赞
踩
priority_queue 是 c++中的优先队列模板(默认为 大顶堆、(最大堆))。
priority_queue的定义方法:
①方法一:
priority_queue<类型> 标识符(变量名);//最简单的, 这样默认为大顶堆
②方法二:
priority_queue< 类型,容器类型, cmp> 标识符;
// 第一个参数是成员类型(就是你想把什么样的数据存在该优先队列中);
//第二个参数是优先队列底层容器, (就是你想用什么样的容器来实现堆, 如vector容器 存储实现堆)
//第三个容器是排序方式, 这样可以实现小顶堆,大顶堆, 有两个排序函数 great<>(可以实现小顶堆), less<>(大顶堆);
列如:
priority_queue<int , vector<int>,greater<int> > q;//int 类型, vecot<int>作为底层容器, 实现的小顶堆
struct node
{
int a;
int b;
};
struct cmp
{
bool operator()(node x, node y)
{
return x.a > y.a;
}
}
priority_queue<node, vector<node>, cmp > q;//node 类型 , vector<node>作为底层容器, 实现的小顶堆;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。