priority_queue(堆排序)
priority_queue优先队列
- 从后面入队,从前面出队
- 入队时,会让优先级高的排在队伍前面
- 下标为0的地方是top栈顶;下标为size-1的地方是栈底bottom
- 内部实现是堆排序
- 不会去重
#include<queue>
template <
typename T, //元素类型
typename Container=std::vector<T>,
//优先队列的底层容器,必须是数组(如vector、deque),不能是list
typename Compare=std::less<T>
//默认是less
>
class priority_queue;
大顶堆、小顶堆如何区分¶
背景
std::sort
默认是使用<
号进行排序,而且是升序(因为设计者们认为,升序是常见的排序方式)。如果传入>
,则是降序- 对于
priority_queue
,新元素是从右边插队,因此顺序是从右到左
如何区分