定义: 每次top()出来的, 都是队列中优先级最高的。但, 注意, 队列中个元素的相对位置不变。
头文件: <queue>
声明方式: priority_queue<Type> Name;
注: type 可以是任意类型, 但是非内置类型需要自己写辅助比较函数(重载<号也是可以的, 因为优先队列内部是通过<去比较大小的, 但是>不行。)建议用重载<的方式。初学嘛~要不思进取。
辅助函数: 其实优先队列 并不像sort()那样 是写辅助函数, 而是写辅助结构体。。
以int为例:priority_queue<int, vector<int>, cmp> que;
cmp应该这样写:在cmp结构体里对() 进行重载。
struct cmp
{
bool operator() (int a, int b) {
return a < b;
}
};
接口:top ()
push ()
pop ()
size()
empty()
样例:uva12100 优先队列的失败尝试