优先队列问题
就是一个队列按照从小到大事先排好序了node
priority_queue<int>pque; //从大到小输出的队列
priority_queue<int, vector<int>, less<int>>s; //less表示按照递减(从大到小)的顺序插入元素
priority_queue<int, vector<int>, greater<int>>s; //greater表示按照递增(从小到大)的顺序插入元素less
几个比较重要的函数函数
基本操做:spa
empty() 若是队列为空,则返回真code
pop() 删除对顶元素,删除第一个元素blog
push() 加入一个元素队列
size() 返回优先队列中拥有的元素个数it
top() 返回优先队列对顶元素,返回优先队列中有最高优先级的元素io
在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。编译
struct cmp { bool operator()(int x,int y) { return x>y; } };
priority_queue<int,vector<int>,cmp>pque; //定义方法
struct node { int a,b; friend bool operator<(node x,node y) { return x.a<y.a; } }v[500];
//在重载”<”时,最好不要重载”>”,可能会发生编译错误