STL之priority_queue

priority_queue是优先级队列,主要应用于需要自动排序的情况,比如录入成绩。

一、priority_queue的基本操作

#include<iostream>
#include<queue>
#include<functional>

using namespace std;

void func1() {
    priority_queue<int> pq1;
    priority_queue<int, vector<int>, less<int>> pq2;
    priority_queue<int, vector<int>, greater<int> > pq3;

    pq1.push(33);
    pq1.push(11);
    pq1.push(55);
    pq1.push(22);

    cout << " 最大值优先队列队头为: "<< pq1.top() << endl;
    cout << " 最大值优先队列大小为: " << pq1.size() << endl;

    while (pq1.size() > 0) {
        cout << pq1.top() << " ";
        pq1.pop();
    }
    cout << endl;

    pq2.push(33);
    pq2.push(11);
    pq2.push(55);
    pq2.push(22);

    cout << " 最大值优先队列队头为: " << pq2.top() << endl;
    cout << " 最大值优先队列大小为: " << pq2.size() << endl;

    while (pq2.size() > 0) {
        cout << pq2.top() << " ";
        pq2.pop();
    }
    cout << endl;

    pq3.push(33);
    pq3.push(11);
    pq3.push(55);
    pq3.push(22);

    cout << " 最小值优先队列队头为: " << pq3.top() << endl;
    cout << " 最小值优先队列大小为: " << pq3.size() << endl;

    while (pq3.size() > 0) {
        cout << pq3.top() << " ";
        pq3.pop();
    }
    cout << endl;
}

int main(){
    func1();
    system("pause");
    return 0;
}

输出结果:

这里写图片描述

可以看到

priority_queue<int> pq1;

默认就是最大值优先,

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

这种形式也是最大值优先;

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

这种形式是最小值优先。其中的less和greater需要头文件,是预先定义好的函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值