首页 > 其他 > 详细

【STL学习】priority_queue

时间:2017-07-14 09:11:37      阅读:273      评论:0      收藏:0      [点我收藏+]

介绍:

三个参数: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

原文:http://www.cnblogs.com/LuRenJiang/p/7168215.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!