STL之priority_queue
2016-06-26 20:09
417 查看
priority_queue是优先级队列,主要应用于需要自动排序的情况,比如录入成绩。
一、priority_queue的基本操作
输出结果:
可以看到
默认就是最大值优先,
这种形式也是最大值优先;
这种形式是最小值优先。其中的less和greater需要头文件,是预先定义好的函数。
一、priority_queue的基本操作
#include<iostream> #include<queue> #include<functional> using namespace std; void func1() { priority_queue<int> pq1; priority_queue<int, vector<int>, less<int>> pq2; priority_queue<int, vector<int>, greater<int> > pq3; pq1.push(33); pq1.push(11); pq1.push(55); pq1.push(22); cout << " 最大值优先队列队头为: "<< pq1.top() << endl; cout << " 最大值优先队列大小为: " << pq1.size() << endl; while (pq1.size() > 0) { cout << pq1.top() << " "; pq1.pop(); } cout << endl; pq2.push(33); pq2.push(11); pq2.push(55); pq2.push(22); cout << " 最大值优先队列队头为: " << pq2.top() << endl; cout << " 最大值优先队列大小为: " << pq2.size() << endl; while (pq2.size() > 0) { cout << pq2.top() << " "; pq2.pop(); } cout << endl; pq3.push(33); pq3.push(11); pq3.push(55); pq3.push(22); cout << " 最小值优先队列队头为: " << pq3.top() << endl; cout << " 最小值优先队列大小为: " << pq3.size() << endl; while (pq3.size() > 0) { cout << pq3.top() << " "; pq3.pop(); } cout << endl; } int main(){ func1(); system("pause"); return 0; }
输出结果:
可以看到
priority_queue<int> pq1;
默认就是最大值优先,
priority_queue<int, vector<int>, less<int>> pq2;
这种形式也是最大值优先;
priority_queue<int, vector<int>, greater<int> > pq3;
这种形式是最小值优先。其中的less和greater需要头文件,是预先定义好的函数。
相关文章推荐
- 浅析STL中的常用算法
- STL区间成员函数及区间算法总结
- c++ STL容器总结之:vertor与list的应用
- C++在成员函数中使用STL的find_if函数实例
- 关于STL中list容器的一些总结
- 关于STL中的map容器的一些总结
- 浅析stl序列容器(map和set)的仿函数排序
- STL list链表的用法详细解析
- stl容器set,map,vector之erase用法与返回值详细解析
- STl中的排序算法详细解析
- 关于STL中vector容器的一些总结
- 关于STL中set容器的一些总结
- 简单说说STL的内存管理
- STL与泛型编程(1)---模板
- CppUtest发现的STL容器内存泄漏问题
- STL中算法
- STL简单应用
- vector-list-deque
- 三十分钟掌握STL
- Qt中QSet的使用