#include<bits/stdc++.h>
using namespace std;
int main()
{
//priority_queue<int> ve; 输出 3 1 -1 默认降序
//第二个参数为存储容器
//emplace 原地构造
priority_queue<int,vector<int>, greater<int> > ve;//输出-1 1 3
ve.push(1);
ve.push(-1);
ve.push(3);
cout<<ve.top()<<endl;
ve.pop();
cout<<ve.top()<<endl;
ve.pop();
cout<<ve.top()<<endl;
ve.pop();
//priority默认降序排列
//greater 升序排列
}
内部实现 堆 复杂度 优先队列bai插入和删除du元素的复杂度都是O(lgn)。
常用函数
和队列基本操作相同:
- top 访问队头元素
- empty 队列是否为空
- size 返回队列内元素个数
- push 插入元素到队尾 (并排序)
- emplace 原地构造一个元素并插入队列
- pop 弹出队头元素
- swap 交换内容
参考https://blog.csdn.net/weixin_36888577/article/details/79937886