priority_queue相关操作

来源:互联网 发布:铝材下料软件 编辑:程序博客网 时间:2024/06/07 09:43

1.优先队列的使用

#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <iostream> using namespace std;int main(int argc, char *argv[]){priority_queue<int> pq;//队列中最大的数总位于队首; pq.push(1);pq.push(2);pq.push(3);pq.push(9);cout<<pq.size()<<endl;while(pq.empty()!=true){cout<<pq.top()<<" ";pq.pop();}cout<<endl;return 0;}

2.重载()操作符来定义优先级

#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <vector>#include <iostream>using namespace std;struct mycomp{bool operator ()(const int &a,const int &b){return a>b;}};int main(int argc, char *argv[]){priority_queue<int,vector<int>,mycomp> pq;pq.push(1);pq.push(9);pq.push(2);pq.push(30);while(pq.empty()!=true){cout<<pq.top()<<" ";pq.pop();}cout<<endl;return 0;}

3.重载《操作符来定义优先级

#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <iostream>using namespace std;struct Info{string name;float score;bool operator <(const Info& x)const{return score>x.score;}};int main(int argc, char *argv[]){priority_queue<Info> pq;Info info;info.name="Jack";info.score=68.5;pq.push(info);info.name="Bomi";info.score=18.5;pq.push(info);info.name="Peti";info.score=90;pq.push(info);while(pq.empty()!=true){cout<<pq.top().name<<" : "<<pq.top().score<<endl;pq.pop();}return 0;}


0 0