概述
优先队列容器默认使用向量容器实现,用户也可以使用双端队列容器。优先队列总是把优先级最高的元素放在队列的最前方,来保持队列的有序性。
插入操作push()使用一个双变量的布尔函数,将队列中的元素重新排序,以满足这个要求。
该函数可以由用户提供,否则可以使用<操作符,元素越大,优先级越高。
如果元素越小,优先级越高,则需要使用函数对象greater,表明在决定向优先级队列中插入新元素时,push()应该使用的操作符是>而不是<.
成员函数:
empty | true if the priority queue has no elements |
pop | removes the top element of a priority queue |
push | adds an element to the end of the priority queue |
size | returns the number of items in the priority queue |
top | returns the top element of the priority queue |
在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。
优先队列的第一种用法,也是最常用的用法:
priority_queue<int> qi;
通过<操作符可知在整数中元素大的优先级高。
故示例1中输出结果为:9 6 5 3 2
第二种方法:
在示例1中,如果我们要把元素从小到大输出怎么办呢?
这时我们可以传入一个比较函数,使用functional.h函数对象作为比较函数。
priority_queue<int, vector<in
最后
以上就是温婉睫毛膏为你收集整理的标准模板库STL中优先队列Priority Queues使用手册的全部内容,希望文章能够帮你解决标准模板库STL中优先队列Priority Queues使用手册所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复