高级数据结构

132 阅读1分钟
  • 优先队列

参考链接:www.cnblogs.com/huashanqing…

头文件:queue

基本操作:

  • top 访问队头元素
  • empty 队列是否为空
  • size 返回队列内元素个数
  • push 插入元素到队尾 (并排序)
  • emplace 原地构造一个元素并插入队列
  • pop 弹出队头元素
  • swap 交换内容

初始化

priority_queue的定义:priority_queue<Type, Container, Functional>

其中Type是数据类型,Container 就是容器类型,Functional 就是比较的方式。

priority_queue默认是采用vector做容器,默认最大值堆。

最小值堆:priority_queue <int,vector,greater > q;

最大值堆:priority_queue <int,vector,less >q;

自定义类型:在类内重载<运算符,比较需要的参数,其中返回<表示最大值优先,返回>表示最小值优先。例如:

bool operator<(const tmp1& a) const
{
     return x < a.x; //最大值堆
}