首页 > 代码库 > 【STL学习】priority_queue
【STL学习】priority_queue
介绍:
三个参数:priority_queue<Type,Container, Functional>
①Type:数据类型②:Container:容器(默认是vector)③Functional:元素比较方式
栗子:
一:元素类型为基本类型
按升序排序 ( 按降序排序则把第三个参数改为less<int> ) :
#include <iostream> #include <queue> using namespace std; int main(int argc, const char * argv[]) { priority_queue<int,vector<int>,greater<int> >q; for(int i=0;i<5;i++){ q.push(i); } while(!q.empty()){ cout<<q.top()<<endl; q.pop(); } return 0; }
二:元素类型为自定义类型
#include <iostream> #include <queue> using namespace std; struct Node{ int x; int y; }node; struct cmp{ bool operator()(Node a,Node b){ if(a.x==b.x)return a.y<b.y; return a.x<b.x; } }; int main(int argc, const char * argv[]) { priority_queue<Node,vector<Node>,cmp >q; for(int i=0;i<5;i++){ node.x=i; node.y=i+1; q.push(node); } while(!q.empty()){ cout<<q.top().x<<‘ ‘<<q.top().y<<endl; q.pop(); } return 0; }
【STL学习】priority_queue
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。