头文件:
<queue>
声明:
数据大的优先级高:priority_queue<int> que; //数据类型为int型,que为变量名
数据小的优先级高:priority_queue<int, vector<int>, greater<int> > que; //数据类型为int型
数据类型为结构体:priority_queue<node> que;
#include <queue> #include <iostream> #include <cstdio> using namespace std; typedef struct node { int weight; int value; }SS; bool operator<(const node &a,const node &b) { if(a.weight==b.weight) return a.value>b.value; else return a.weight>b.weight; } int main() { priority_queue<node> que; int n; cin>>n; SS s[55]; for(int i=0;i<n;i++) { int x,y; cin>>x>>y; s[i].weight=x; s[i].value=y; que.push(s[i]); } while(!que.empty()) { printf("%d %d\n",que.top().weight,que.top().value); que.pop(); } return 0; }函数:
empty() //判断队列是否为空,为空返回true,不为空返回false
top() //返回值为队列的队首元素
push() //void型函数,无返回值,将元素入队,如que.push(1024);将1024入队
pop() //将队首元素删除
size() //返回值为队列的元素个数