Priority_queue优先队列容器
2013-08-14 19:27
483 查看
Priority_queue优先队列容器和队列一样只能在队尾插入队首删除但有个特性是队列中的最大元素总是位于队首所以出队时并非按先进先出的原则进行而是将当前队列中最大的元素出队这点类似给队列中的元素进行了默认的大到小的顺序排列重载“<”可以重新定义比较规则
Priority_queue优先队列容器优先队列的使用方法
使用push()入队插入元素 pop()出队删除元素top()读取队首元素 empty()判断队列是否为空 size()读取队列元素数量
#include<iostream> #include<string.h> #include<stdio.h> #include<ctype.h> #include<algorithm> #include<stack> #include<queue> #include<set> #include<math.h> #include<vector> #include<map> #include<deque> #include<list> using namespace std; int main() { int n,m; priority_queue<int>pq; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { scanf("%d",&m); pq.push(m); } while(!pq.empty()) { cout<<pq.top()<<" "; pq.pop(); } cout<<endl; } return 0; }
Priority_queue优先队列容器重载“<”操作符定义优先级
如果优先队列的元素类型是结构体重载“<”修改优先队列的优先性#include<iostream> #include<string.h> #include<stdio.h> #include<ctype.h> #include<algorithm> #include<stack> #include<queue> #include<set> #include<math.h> #include<vector> #include<map> #include<deque> #include<list> using namespace std; struct Info { string name; double score; bool operator<(const Info&a)const { return a.score<score; } }; int main() { priority_queue<Info>pq; Info info; info.name="chen"; info.score=99.9; pq.push(info); info.name="zhen"; info.score=88.8; pq.push(info); info.name="bin"; info.score=77.7; pq.push(info); while(!pq.empty()) { cout<<pq.top().name<<":"<<pq.top().score<<endl; pq.pop(); } return 0; }
Priority_queue优先队列容器重载“()”操作符来定义优先级
如果优先队列元素不是结构体类型可通过重载“()”操作符定义优先级当然元素是结构体也可通过重载“()”不一定要在结构体内重载“<”#include<iostream> #include<string.h> #include<stdio.h> #include<ctype.h> #include<algorithm> #include<stack> #include<queue> #include<set> #include<math.h> #include<vector> #include<map> #include<deque> #include<list> using namespace std; struct N { bool operator()(const int&a,const int&b) { return a>b; } }; int main() { int n,m; priority_queue<int,vector<int>,N>pq; while(scanf("%d",&n)!=EOF) { for(int i=0; i<n; i++) { scanf("%d",&m); pq.push(m); } while(!pq.empty()) { cout<<pq.top()<<" "; pq.pop(); } } return 0; }
相关文章推荐
- queue队列容器-priority_queue优先队列
- C++STL之priority_queue优先队列容器
- STL queue队列容器和priority_queue优先队列容器
- ACM学习历程19——queue队列容器与priority_queue优先队列容器
- priority_queue优先队列容器
- priority_queue 优先队列容器
- STL序列式容器之优先队列——priority_queue
- 【优先队列】【堆】STL之priority_queue、make_heap()、push_heap()、pop_heap()、容器适配器
- 优先队列priority_queue容器的使用方法:出队,入队,删除队首元素,判断是否为空
- stack堆栈容器、queue队列容器和priority_queue优先队列容器(常用的方法对比与总结)
- 第20章 priority_queue优先队列容器
- priority_queue优先队列容器。(爱上原创和改造) nyoj 55 懒省事的小明
- [C++ STL] 优先队列容器 priority_queue
- priority_queue优先队列容器
- priority_queue 优先队列容器
- STL(二十)priority_queue优先队列容器
- 优先队列容器-priority_queue
- 浅谈C++ STL中的优先队列(priority_queue)
- 优先队列(priority_queue)的C语言实现代码
- 优先队列priority_queue 用法详解