优先队列

来源:互联网 发布:156个援建项目 知乎 编辑:程序博客网 时间:2024/06/02 05:22

1.priority_queue

(1)基本类型

最大优先队列:

priority_queue<int> q;

priority_queue<int,vector<int> > q; 

priority_queue<int,vector<int>,less<int> > q;

最小优先队列:

priority_queue<int,vector<int>,greater<int> > q;


http://www.cplusplus.com/reference/queue/priority_queue/


(2)自定义类型

重载:

//最大堆struct Node{    int key;};bool operator<(Node a,Node b){    return a.key<b.key;}priority_queue<Node> q;

仿函数:

//最大堆struct Node{    int key;};struct cmp{    bool operator()(Node a,Node b)    {        return a.key<b.key;    }};priority_queue<Node,vector<Node>,cmp> q;//最小堆struct Node{    int key;};struct cmp{    bool operator()(Node a,Node b)    {        return a.key>b.key;    }};priority_queue<Node,vector<Node>,cmp> q;


2.heap

make_heap(),push_heap(),pop_heap(),sort_heap()


http://www.cplusplus.com/reference/algorithm/push_heap/




0 0
原创粉丝点击