priority_queue容器中的元素可以拥有不同的优先权。所谓优先权,乃是基于程序员提供的排序准则(缺省使用operators)而定义。priority queue 的效果相当于这样一个buffer:“下一元素永远是queue中优先级最高的元素”。如果同时有多个元素具备最高优先权,则其次序无明确定义。
priority_queue<数据类型> a;
//大根堆
priority_queue<数据类型,vector<数据类型>, greater<数据类型> > b;
//小根堆
a.push(x);
插入元素(位置不确定)
a.top();
查看堆顶元素(大根堆是最大值,小根堆是最小值)
a.pop();
删除堆顶元素(大根堆是最大值,小根堆是最小值)
优先队列插入时无序,输出时有序
优先队列存储自定义类型时,需要重载运算符
大根堆重载<
小根堆重载>