1.优先级队列简介
优先级队列(priority_queue)是一种容器适配器,默认基础容器为数组vector,使用时需要包含头文件<queue>。其内部基于堆结构实现,关于堆结构的介绍可以看这里。理解了堆之后也就能理解优先级队列的原理,以及为什么使用vector作为默认基础容器,不过不了解堆结构也不影响优先级队列的使用。
优先队列是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有
1) 查找;
2) 插入一个新元素;
3) 删除.
在最小优先队列中,最小元素在最前面,可以通过top函数访问,删除操作用来删除该元素(此时内部构造最小堆),删除元素或插入新元素后同样保证最小元素在最前面这个特点;对于最大优先队列,最大元素在最前面,可以通过top函数访问,删除操作用来删除该元素(此时内部构造最大堆)。
2.成员函数
empty | 判断容器是否为空 |
size | 返回容器大小 |
top | 返回最前面的元素(即堆顶元素&# |