优先队列:
- 优先级最高的先出队。
- 队列和排序的完美结合,不仅可以存储数据,还可以将这些数据按照设定的规则进行排序。
- 每次的push和pop操作,优先队列都会动态调整,把优先级最高的元素放在前面。
优先队列的有关操作
- q.top(); //返回具有最高优先级的元素值,但不删除该元素
- q.pop(); //删除最高优先级元素
- q.push(item) ; //插入新元素
补丁:
- STL中,优先队列是用二叉堆来实现的,
- 往队列中push入一个数或pop一个数,复杂度是O(logn)。
例:
- 图论的Dijkstra算法的程序实现,
- 用STL的优先队列能极大地简化代码。
习题:
- hdu 1873 看病要排队。