首页 > 其他 > 详细

优先队列 priority_queue

时间:2021-05-26 21:34:43      阅读:16      评论:0      收藏:0      [点我收藏+]

头文件:

#include<queue>

升序定义:

priority_queue<int,vector<int>,greater<int>>q;//从小到大

降序定义:

priority_queue<int,vector<int>,less<int>>q;//从大到小

比较方式默认less,优先队列是大根堆,队头元素最大。

主要函数:

  • q.empty()//判断优先队列容器q是否为空
  • q.size()//返回优先队列容器中实际元素个数
  • q.push(a)//元素a进队
  • q.top()//获取头元素
  • q.pop()//元素出队

大根堆:

int main()
{
    priority_queue<int>p;//系统默认从大到小
    p.push(1);
    p.push(2);
    p.push(3);
    p.push(4);
    p.push(4);
    for (int i = 0; i < 5; i++)
    {
        cout << p.top() << endl;//输出从大到小
        p.pop();
    }
    return 0;
}

小根堆:

int main()
{
    priority_queue<int, vector<int>, greater<int>>p;//定义小根堆
    p.push(5);
    p.push(4);
    p.push(3);
    p.push(2);
    p.push(1);
    for (int i = 0; i < 5; i++)
    {
        cout << p.top() << endl;//输出从小到大
        p.pop();
    }
    return 0;
}

 

优先队列 priority_queue

原文:https://www.cnblogs.com/Uiney117/p/14814094.html

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