priority_queue、重载运算符 知识梳理
priority_queue (优先队列)
(底层实现先是红黑树(平衡树))
性质:
1.完全二叉树。
2.大根堆 (任意一个父亲节点比他的子孙节点值大)
15
10 13
7 8 11 12
增加和删除数据的操作,时间复杂度为O(log n).
定义:
priority_queue <int> pq;
用法:
pq.push(x) | 将x入队 |
---|---|
pq.top() | 查看队头元素 |
pq.pop() | 队头出队 |
pq.size() | 查看队伍大小 |
pq.clear() | 清空队列 |
pq.empty() | 查看是否为空 |
注意:判空!
优先队列只能找最大值,无法找次大值,队头元素最大(可以重载运算符来找最小值)
重载:
priority_queue <int> q1;//大顶堆(简略)