C++ STL 学习笔记 priority_queue

priority_queue

  • 优先级队列适配器
  • 自适应容器(容器适配器):不能用list只能用vector deque
  • 最大值优先级队列(less),最小值优先级队列(greater)默认从大到小排序
  • 相关操作

    priority_queue<int,deque<int>,less<int>> pq;  //最大值优先级队列可以不写less,应为默认为它
    priority_queue<int,vector<int>,greater<int>>  pq; //最小值优先级队列,需要包含functional头文件应为less和greater在该文件中
    pq.empty();
    pq.size();
    pq.push(item);
    pq.pop();
    pq.top();      //不能用front
    pq.back();

    学习代码

    #include <iostream>
    #include <queue>
    #include <functional> //使用greater要包含这个
    
    using namespace std;
    
    int main()
    {
        priority_queue<int, vector<int>,less<int>> pq;  //最大值优先级队列
        priority_queue<int, deque<int>, greater<int>>   pq2;//最小值优先级队列
    
        pq.push(10);
        pq.push(5);
        pq.push(20);
        pq.push(15);
        cout << "优先级队列里有" << pq.size() << "个数据" << endl;
        cout << pq.top() << endl;
    
        while (!pq.empty())
        {
            cout << "从优先级队列里删除" << pq.top() << endl;
            pq.pop();
        }
        cout << "下面是最小值优先级队列" << endl;
        pq2.push(10);
        pq2.push(5);
        pq2.push(-1);
        pq2.push(20);
        cout << pq2.top() << endl;
        while (!pq2.empty())
        {
            cout << "删除" << pq2.top() << endl;
            pq2.pop();
        }
    
        getchar();
        return 0;
    
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值