C++优先队列 priority_queue

简介

优先队列(priority_queue)
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。

它与队列最大的区别是:自动排序!!!

头文件#include <queue>

常见基本声明格式:

priority_queue <int> t; //默认是从大到小排列,即最大优先
priority_queue <int,vector<int>,less<int> >p; //不需要再写#include <vector>头文件,因为他默认的容器就是vector
priority_queue <double,vector<double>,greater<double> >q;//注意后面两个'>' 不要写在一起,">>" 是右移运算符

常见基本操作:以p为例

p.size();  //返回q里面元素个数
p.empty(); //判断q是否为空,返回1就是空
p.push(num); //在队列末尾插入num
p.pop(); // 删除q的第一个元素
p.top(); // 返回q的第一个元素

示例

#include <iostream>
#include <queue>

using namespace std;

int main()
{
    priority_queue <int> p; //默认就是从大到小,但是建议还是写全。
    //priority_queue <int,vector <int>,less<int> >p;
    p.push(90);
    p.push(40);
    p.push(30);
    p.push(50);
    p.push(60);

    while(!p.empty()) //p不为空
    {
        cout<< p.top()<<endl;
        p.pop();

    }
        return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值