前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++STL模板库适配器之优先级队列

C++STL模板库适配器之优先级队列

作者头像
IBinary
发布2019-05-25 16:37:39
4280
发布2019-05-25 16:37:39
举报
文章被收录于专栏:逆向技术逆向技术

适配器之优先级队列

一丶优先级队列简介(priority_queue)

优先级队列.不采用严格的先进先出的顺序.而是按照优先级. 给定某一时刻位于队列头的元素. 如果两个元素有相同的优先级.他们他们在队列中的顺序就是先进先出.底层是vector容器支持.可以使用deque,不能使用list.因为优先级队列要支持对元素的随机访问.便于排序.

二丶优先级队列代码演示

优先级队列方法跟队列方法一致.

1.优先级队列代码以及使用简介

优先级队列怎么说那.其实就是跟队列一样.只不过内部进行了排序.(排序是你自己制定的按照什么方式排序) 然后放到头部.

  • 模板申明带3个参数:priority_queue<Type, Container, Functional>,其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。 第一种方式.不指定.默认跟队列一样.先进先出.
代码语言:javascript
复制
#include <iostream>
#include <queue>
using namespace std;
int main()
{
  priority_queue<int> q;
  q.push(7);
  q.push(9);
  q.push(6);
  while (!q.empty()) {
    cout << q.top() << endl;
    q.pop();
  }
  system("pause");
  return 0;
}

程序输出9 7 6

第二种方式. 指定排序方式,可以指定大小

代码语言:javascript
复制
#include <iostream>
#include <queue>
using namespace std;
int main()
{
 // priority_queue<int,vector<int>,less<int>> q;  less()比较方式按照大的优先级方式. greater是小的
  priority_queue<int, vector<int>, greater<int>> q;

  q.push(7);
  q.push(9);
  q.push(6);
  while (!q.empty()) {
    cout << q.top() << endl;
    q.pop();
  }
  system("pause");
  return 0;
}

程序输出 6 7 9

参考博客: 博客链接

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 适配器之优先级队列
    • 一丶优先级队列简介(priority_queue)
      • 二丶优先级队列代码演示
        • 1.优先级队列代码以及使用简介
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档