文章目录
- 优先级队列的定义
- 定义:
- 接口
- 头文件
- 优先队列和堆的关系
- 使用:
- 排序的规则
- 容器
- 仿函数
- 应用
- 队列存指针问题:
优先级队列的定义
定义:
黄色部分是仿函数
接口
头文件
这里不需要包含其他的头文件只需要使用队列的头文件就可以;
优先队列和堆的关系
当优先队列的容器是顺序表时;优先队列即为堆;
使用:
排序的规则
创建优先队列按降序排列(大堆):
创建优先队列按升序排列(小堆):
使用greater
容器
这里可以使用vector和dequeue’;原因:两者都可实现下标的随机访问;但是dequeue的下表访问的效率不高;
dequeue的前插和尾插的效率还可以;所以可以用来作为栈和队列的容器;
仿函数
这里的仿函数可以是less和greater这里个在库函数内都有不必自己写;less和greater在库函数内都没有大写而是小写;
应用
作为函数参数
示例:sort()函数;
作为模板参数
示例:priority_queue 类的模板参数
** sort和priority_queue类的对比**:
队列存指针问题:
出现这种情况的原因是:每次new的空间都是不确定的;无法判断三者的指针大小;
解决方法:
自己创建一个类