优先级队列(priority_queue)

本文介绍了C++标准库中优先级队列(priority_queue)的基本概念和使用方法,包括最大值和最小值优先级队列的区别及实现方式。通过具体代码示例展示了如何创建和操作优先级队列,如插入元素、获取队首元素、删除队首元素等基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# include <iostream>
# include <queue>
# include <vector>
# include <deque> 

using namespace std;

/*
     优先级队列(priority_queue) 
     最大值优先级队列,最小值优先级队列

      自适应容器
       priority_queue允许对数据随机的操作,所有就不能用list

      操作: 
        q.empty(); 是否为空 
        q.size();  大小 
        q.top(); 查看队首元素 
        q.pop();  在队首删除数据,就是出队 
        q.push(item);   根据优先级大小排序 
*/
int main(){

    priority_queue<int,vector<int>,less<int> > pq;//默认vector容器与less最大值优先级队列 
    priority_queue<int,deque<int>,greater<int> > pq2;//deque不是默认的是换个容器,greater最小值优先级队列 

    //默认是最大值优先级队列 
    pq.push(10);
    pq.push(20);
    pq.push(9);

    //查看队首元素 
    cout<<pq.top()<<endl<<endl; //20

    //对元素个数
    cout<<pq.size()<<endl<<endl; 

    //删除队中的元素 
    while(!pq.empty()){
        cout<<pq.top()<<" "; 
        pq.pop();//删除 

    }
    cout<<endl; 



    //最小值优先级队列 
    pq2.push(100);
    pq2.push(-1);
    pq2.push(-99);

    //删除所有元素 
    while(!pq2.empty()){
        cout<<pq2.top()<<"   ";
        pq2.pop();//删除  没有返回值 
    } 
    cout<<endl;

    return 0;
}

运行结果:
20

3

20 10 9

-99 -1 100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值