当前位置:   article > 正文

c++学习篇priority_queue的学习_c++ porieriy_queu

c++ porieriy_queu

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>作为底层容器, 实现的小顶堆;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

一篇很好的关于结构体优先队列自定义排序的博客——>

一篇很好的 优先队列讲解博客——>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/355188
推荐阅读
相关标签
  

闽ICP备14008679号