其为队列需要包含头文件#include
优先队列具有队列的所有特性,包括基本操作,只是在此基础上添加内部排序,实质上由堆实现
- top访问队头元素
- empty队列是否为空
- size返回队列中元素的个数
- push插入元素到队尾(并排序)
- emplace原地构造一个元素并插入队列
- pop弹出队头元素
- swap交换内容
用法priority_queue<Type, Container, Functional>
Type:数据类型
Container: 容器类型,必须是用数组实现的容器比如:vector,deque等等,STL里面默认的是vector
Functional:比较方式(仿函数)
当需要用自定义的数据类型时才需要传入这三个参数,使用基本类型时,只需要传入数据类型,默认是大顶堆;
//升序队列
priority_queue <int,vector<int>,greater<int> > q;
//降序队列
priority_queue <int,vector<int>,less<int> >q;
//greater和less是std实现的两个仿函数(就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)
标签:queue,优先级,函数,队列,数据类型,C++,priority
From: https://www.cnblogs.com/dh2021/p/16860370.html