其实早就想存个档了(→_→)
优先队列,说白了就是会有急诊病人插队的情况,它基本不符合先进先出的准则。
优先队列也定义在头文件<queue>中,用 “priority_queue<int>Q" 声明,Q是一个越大的整数优先级越高的优先队列
当然也可以自定义优先级比较方法,与sort里的cmp类似,可用结构体完成,例如,要实现定义一个”个位数小的整数优先级高”的优先队列,构造结构体cmp:
struct cmp{ bool operator()(const int a,const int b)const{ return a%10>b%10; } };
然后就可用 “priority_queue<int,vector<int>,cmp>Q"定义
STL还提供了更简单的定义方法,”越小的整数优先级越大“可写成 ”priority_queue<int,vector<int>,greater<int> >Q;“,要注意的是最后两个">"不能写在一起,容易被识别为">>"运算符
优先队列主要的三个操作
① push() 入队
② pop() 出队
③ top() 取队首元素(不删除)
练习题:poj3253
loading...