您的位置:首页 > 编程语言 > C语言/C++

c/c++优先级队列(priority_queue)

2016-06-14 00:30 344 查看
优先级队列是根据元素的优先级被读取。

程序员可以通过template参数指定一个排序准则。缺省的排序准则是利用operator< 形成降序排列,那么所谓“下一个元素”就是“数值最大的元素”。

头文件:

#include<queue>


核心接口

push() 将一个元素置于priority queue中

top() 返回priority queue中的“下一个元素”

pop() 从priority queue 中移除一个元素

注意:如果priority queue 内没有元素,执行top()和pop()会导致未定义的行为,应该先采用size()或empty()来检验容器是否为空。

例子:

#include <iostream>
#include <queue>
using namespace std ;

int main()
{
priority_queue<float> q;
q.push (66.6);
q.push (22.2);
q.push (44.4);

// read and print two elements
cout << q.top () << ' ';  //此处是66.6
q.pop ();    //pop 也是66.6
cout << q.top () << endl;   //此处是44.4
q.pop ();   //此处是44.4

q.push (11.1);
q.push (55.5);
q.push (33.3);

// skip one element
q.pop ();  //此处是55.5

// pop and print remaining elements
while (!q.empty ()) {
cout << q.top () << ' '; //依次是33.3 22.2 11.1
q.pop ();
}
cout << endl ;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: