priority_queue优先队列的一些用法
2011-03-09 14:25
525 查看
#include <iostream> #include <queue> #include <vector> #include <algorithm> using namespace std; class Node { public: Node(){first = 0;second = 0;} Node(int i, int j) : first(i),second(j){} Node(int i) : first(i){} int first, second; }; class cmp { public: bool operator()(const Node &a, const Node &b) { if(a.first != b.first) { return a.first > b.first; } else { return a.second > b.second; } } }; int main(void) { //cout << "Hello world!" << endl; int n; priority_queue<Node, vector<Node>, cmp> que; while(cin >> n) { while(n--) { int temp; cin >> temp; que.push(Node(temp)); } while(!que.empty()) { cout << que.top().first << endl;//读取队首元素 que.pop();//队首元素出队 } } return 0; }
还有:
#include <iostream> #include <queue> #include <vector> #include <algorithm> using namespace std; struct Node { Node(){first = 0;second = 0;} Node(int i, int j) : first(i),second(j){} Node(int i) : first(i){} int first, second; }; struct cmp { bool operator()(const Node &a, const Node &b) { if(a.first != b.first) { return a.first > b.first; } else { return a.second > b.second; } } }; int main(void) { //cout << "Hello world!" << endl; int n; priority_queue<Node, vector<Node>, cmp> que; while(cin >> n) { while(n--) { int temp; cin >> temp; que.push(Node(temp)); } while(!que.empty()) { cout << que.top().first << endl;//读取队首元素 que.pop();//队首元素出队 } } return 0; }
最后一个
#include <iostream> #include <queue> #include <vector> #include <algorithm> using namespace std; struct cmp { bool operator()(const int&a, const int &b) { if(a > b) return true; else return false; } };//这代表以升序方式 int main(void) { //cout << "Hello world!" << endl; int n; priority_queue<int, vector<int >, cmp> que; while(cin >> n) { while(n--) { int temp; cin >> temp; que.push(temp); } while(!que.empty()) { cout << que.top() << endl;//读取队首元素 que.pop();//队首元素出队 } } return 0; }
这几个代码看看应该就会懂。用到了仿函数,以及重载运算符。
相关文章推荐
- 优先队列priority_queue用法详解
- [置顶] STL之priority_queue的用法,优先队列
- 优先队列priority_queue 用法详解 +poj 2442 Sequence
- c++ 优先队列 priority_queue 用法简介
- 【转】优先队列priority_queue 用法详解
- STL优先队列priority_queue用法详解
- 优先队列priority_queue 用法详解
- 优先队列priority_queue 用法详解
- 优先队列priority_queue 用法详解
- STL优先队列priority_queue基本用法
- 优先队列priority_queue 用法详解
- ACM向:关于优先队列priority_queue自定义比较函数用法整理
- 优先队列priority_queue 用法详解
- 优先队列priority_queue 用法详解
- 优先队列priority_queue 用法详解
- priority_queue优先队列的用法
- 优先队列priority_queue 用法详解
- 【用法详解】C++-STL 队列queue与优先队列priority_queue的用法详解与学习心得
- 优先队列priority_queue 用法详解
- 优先队列 priority_queue 的用法