queue
queue是队列,是数据结构中的先进先出的容器,相当于现实生活中的一只队伍,先进这个数组的元素会先出来。队列在树和图的算法应用非常广泛,深入理解队列建议看数据结构书籍,这里只讲queue容器的应用。
- 引入:
include<queue>
- 定义:
queue<type> name;
- 访问:我们一般用front()访问首元素,back()访问队尾元素;因为队列的特殊关系,所以其他元素不能访问,只能压入和弹出;
- 压入:
p.push(i)//把i压出队列
- 弹出:
p.pop();//弹出队首元素
priority_queue
优先队列是队列元素带优先级的一种特殊队列,队首元素一定是优先级最高的那个元素。
- 引入:同queue
- 定义:
priority_queue<type> name;
- 访问:优先队列没有front()和back()函数,只能用top()函数访问队首元素,也就是优先级最高的元素。
- 压入:push(x)函数;
- 弹出:pop()函数;
priority_queue优先级设置
基本数据类型int、double、char类型,这种类型的优先队列默认会按照数值从大到小设置优先级,char则按照字典序排序。
如果想要按照从小到大设置的话,可以这样定义
priority_quque<int,vector<int>,greater<int>> q;
这种定义方法和之前的比多了两个参数,中间参数vector,int处填写的是你需要用到的数据类型,其他不用修改。最后一个参数greater填写后,会按照从小大大设置优先级,如果设less则是从大到小,即默认设置,int处同样是你需要的数据类型;