queue 与 vector

优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序

每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。

例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高

所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。

 

priority_queue<int, vector<int>, greater<int> >pq; 格式
第一个参数为数据类型
第二个参数为容器类型。
第三个参数为比较函数。可以自定义 默认从大到小 ///先跳过自定义
STL里面默认用的是 vector. 比较方式默认用从大到小
还有一点要注意的是priority_queue中的三个参数,后两个可以省去,因为有默认参数,不过如果,有第三个参数的话,必定要写第二个参数。

用法:

  1. ///q.push (x);///将x接到队列的末端。  
  2. ///q.top ();///访问队首元素  
  3. ///q.pop ();///删除队首元素  
  4. ///q.front();///访问队首元素   最早被压入队列的元素。  
  5. ///q.back();///访问队尾元素    最后被压入队列的元素。  
  6. ///q.size();///访问队列中的元素个数  
  7. ///q.empty ();///判断是否为空   当队列空时,返回true。  
  1. //priority_queue <int>q;///默认从大到小排序输出  
  2.     ///priority_queue <int ,vector<int> , greater <int>  >q;///从小到大排序输出  >>会被认为是错误  中间要加空格  
  1.  while (!q.empty ())///使用的时候要先判断队列是否为空 不为空的话就清空。。  
  2.             q.pop ();  

 

转载于:https://www.cnblogs.com/wshyj/p/6149112.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值