其实我一直憎恶优先队列,因为它麻烦,没有set好用。
然而set的缺点也很多,比如说存实数就炸了。
优先队列怎么实现的我不知道,但是它具备了堆的最基本功能,想要改造非常难,也不能快速定位,废的一匹。
它是个大顶堆,所以改成小顶可以直接取反,pair也适用。
头文件:
#include<queue>
定义:
priority_queue<int> p;
功能:
p.push(2); //压栈
printf("%d\n", p.top()); //返回的是栈顶
p.pop(); //弹掉栈顶
printf("%d\n", p.empty()); //是否为空
printf("%d\n", p.size()); //返回栈的大小