美文网首页
C++ 优先队列 std::priority_queue

C++ 优先队列 std::priority_queue

作者: random_walk | 来源:发表于2021-05-14 16:16 被阅读0次

定义

template<
    class T,
    class Container = [std::vector](http://en.cppreference.com/w/cpp/container/vector)<T>,
    class Compare = [std::less](http://en.cppreference.com/w/cpp/utility/functional/less)<typename Container::value_type>
> class priority_queue;

提供常数时间的最优先元素的查找(当为int时,默认为最大),对数代价的插入与弹出。
第一个参数,表示优先队列中元素的类型,eg,int和vector,各元素类型应该相同。
第二个参数,表示怎么去存储第一个参数中的元素,满足一定条件,一般为vector和deque
第三个参数,比较各个元素之间的关系,第一实参先于第二实参,则返回true,否则返回 false,默认是std::less即小于为真,则优先级更低,(满足更低)

自定义比较函数

lambda函数

auto cmp = [](vector<int> a, vector<int> b) { return a[0] * a[0] + a[1] * a[1] > b[0] * b[0] + b[1] * b[1]; };
priority_queue< vector<int>, vector<vector<int>>, decltype(cmp) > pq(cmp);

类或结构体

struct cmp{
        bool operator()(vector<int> a, vector<int> b){ 
                     return a[0] * a[0] + a[1] * a[1] > b[0] * b[0] + b[1] * b[1]; 
                }
        };
 priority_queue< vector<int>, vector<vector<int>>, cmp > pq;

相关文章

  • C++ STL priority_queue 使用说明

    说明 优先队列std::priority_queue 可用于构造堆。 比如:大顶堆:priority_queue ...

  • Objective-C封装std::priority_queue

    原文地址:Objective-C封装std::priority_queue<>实现优先队列最近项目中需要用到优先队...

  • C++ 优先队列 std::priority_queue

    定义 提供常数时间的最优先元素的查找(当为int时,默认为最大),对数代价的插入与弹出。第一个参数,表示优先队列中...

  • webrtc MessageQueue 处理过程

    PriorityQueue dmsgq_;//优先队列 优先队列继承自 std::priority_queueDe...

  • priority_queue

    priority_queue 优先队列,其底层是用堆来实现的。在优先队列中,队首元素一定是当前队列中优先级最高的那...

  • priority_queue

    priority_queue又称为优先队列,其底层是用堆来进行实现的。在优先队列中,队首元素一定是当前队列中优先级...

  • priority_queue 优先级队列的使用

    priority_queue 优先级队列是一个拥有权值概念的单向队列 queue,在这个队列中,所有元素是按优先级...

  • STL容器(3)-priority_queue类

    STL容器(3)-priority_queue类 优先级队列 优先级队列本质就是一个堆,在C语言中可以使用数组来实...

  • CodeForces - 681C 【优先队列】

    传送门优先队列在语法(推入,删除)上与普通队列一样,不同在于声明时要这样:priority_queue ,grea...

  • STLRecipe---priority_queue

    priority_queue容器适配器定义了一个元素有序排列的队列,默认队列头部的元素优先级最高。 priorit...

网友评论

      本文标题:C++ 优先队列 std::priority_queue

      本文链接:https://www.haomeiwen.com/subject/prvqjltx.html