priority_queue【stl__使用篇】

头文件:<queue>

 

表1 priority_queue操作函数简介
函数名功能函数原型
empty判断优先队列是否为空,空返回true,否则返回falsebool empty() const

size

返回优先队列中元素的个数size_type size() const
top返回优先级最高的元素

const T& top ( ) const

push向优先队列中添加元素void push(const T &x)
pop优先级最高的元素出队void pop()

 

由于优先队列还涉及到优先级的设置,因此本文除了给出优先队列的操作外,还对优先级的设置进行说明。

 

priority_queue类模板

template < class T, class Container = vector<T>,
           class Compare = less<typename Container::value_type> > class priority_queue;

参数说明:

参数1:T 说明优先队列中元素的类型,可以是基本数据类型,也可以是用户自定义数据类型

参数2:Container 说明实现优先队列的底层容器,默认是vector

参数3:Compare 说明优先队列的优先原则,即值大优先还是值小优先,特别注意此处实际表示的是!Compare。默认是less,less<T>是一个表示值小优先的结构体的类模板,由!Compare可知优先队列默认值大优先

 

设置优先原则的方法

情况一:元素为用户自定义数据类型

值小优先:重载<运算符为大于含义

值大优先:重载<运算符为小于含义

注:这样重载是由于优先队列的第三个参数实际表示的是!Compare的缘故

重载好后即可按如下方式定义:

priority_queue<T> que;  

T为自定义数据类型

情况二:元素为基本数据类型

值小优先:使用与less<T>相反的greater<T>

示例:priority_queue<int,vector<int>,greater<int> >que

值大优先:优先队列默认值大优先

示例:priority_queue<int> que

只有第一个参数,后面两个参数使用默认值

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值