首页 > 学院 > 开发设计 > 正文

priority_queue 优先队列容器

2019-11-14 13:11:28
字体:
来源:转载
供稿:网友
其他与队列相同,一般情况下就是大的先出队重载“<”操作符来定义优先级:struct Info{string name;float score;//重载“<”操作符,指定优先规则(排序规则)bool Operator < (const Info &a) const{//按score 由小到大排列。如果要由大到小排列,使用“>”号即可return a.score<score;}};//定义优先队列,元素类型为Info 结构体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();}结果按照分数的从小到大输出重载“()”操作符来定义优先级//重载“()”操作符struct myComp{bool operator()(const int &a,const int &b){//由小到大排列采用“>”号;如果要由大到小排列,则采用“<”号return a>b;}};int main(int argc, char* argv[]){//定义优先队列,元素类型为Info 结构体,显式说明内部结构是vectorpriority_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;运行结果:1 2 9 30
上一篇:P1031 均分纸牌

下一篇:go环境安装

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表