c/c++优先级队列(priority_queue)
2016-06-14 00:30
344 查看
优先级队列是根据元素的优先级被读取。
程序员可以通过template参数指定一个排序准则。缺省的排序准则是利用operator< 形成降序排列,那么所谓“下一个元素”就是“数值最大的元素”。
头文件:
top() 返回priority queue中的“下一个元素”
pop() 从priority queue 中移除一个元素
注意:如果priority queue 内没有元素,执行top()和pop()会导致未定义的行为,应该先采用size()或empty()来检验容器是否为空。
例子:
程序员可以通过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; }
相关文章推荐
- C语言中的飞机游戏
- c++ primer(第五版)学习笔记及习题答案代码版(第十五章)面向对象程序设计
- C++ 之IO类库
- C++之getch(),getche(),getchar()的区别
- 你应当如何学习C++(以及编程)
- c语言学习笔记26之指针2
- C++ 引用基础
- 34. Search for a Range(二分查找有重复元素数组中的目标数的第一个位置和最后一个位置)
- C语言乘法表
- 【C语言】18-变量类型
- 第三次作业
- 拥有 C/C++ 基础的学生,如何看懂1万行代码的项目
- c++:角色类,基础
- 350. Intersection of Two Arrays II
- C++统计字符串中每个字符出现的次数
- 【c++程序】句子逆序
- c++:指向学生类的指针:求最高成绩
- 队列 队列的数组实现及链表实现
- 飛飛(六十七)文件的应用 数数
- 飛飛(六十六)文件的结果输出