复杂度:
- 插入push: O(N)
- 弹出堆顶元素: O(logN)
特点
- 优先队列具有队列的所有特性,包括基本操作
- 添加了内部的一个排序(堆)
- 如果将pair类型存入堆,则先比较第一个元素,第一个元素相等时,在比较第二个元素
常用操作
- 创建优先队列
priority_queue<Type, Container, Functional>
//升序队列(小顶堆)
priority_queue <int,vector<int>,greater<int> > q;
//降序队列(大顶堆)
priority_queue <int,vector<int>,less<int> > q;
priority_queue<int> a;
- 添加元素
# 添加元素按堆排列
q.push(1);
q.push(3);
q.push(5);
- 访问元素
a.top();
- 删除元素
a.pop();
- 队列的长度
a.size()