当前位置: 首页 > news >正文

C++(初阶)(十二)——stack和queue

十二,stack和queue

  • 十二,stack和queue
    • Stack
    • Queue
      • priority_queue
    • 简单使用
    • 模拟实现
    • deque

Stack

函数说明
stack()构造空栈
empty()判断栈是否为空
size()返回栈的有效元素个数
top()返会栈顶元素的引用
push()将所给元素val压入栈中
pop()将栈的尾部元素弹出

Queue

函数说明
queue()构造的队列
empty()判空
size()返回队列有效元素个数
front()返回队头元素的引用
back()返回队尾元素的引用
push()在队尾将元素val入队
pop()队头元素出队

priority_queue

函数说明
priority_queue();/,priority_queue(first,last);构造空的优先级队列
empty();判断优先级队列是否为空,是返回true,否 则返回false
top();返回优先级队列中最大(最小元素),即堆顶元素
push(x);在优先级队列中插入元素x
pop();删除优先级队列中最大(最小)元素,即堆顶元素

1,优先队列是一种容器适配器,默认排序是降序,它的第一个元素总是它所包含的元素中最大的。

2,底层结构类似堆,可以随时插入元素,可以取堆顶元素,默认是最大的元素。

3,优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue 提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。

4,底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。

默认使用vector作为其底层存储数据的容器。

容器应该可以通过 随机访问迭代器访问,并支持以下操作:

函数说明
empty():检测容器是否为空
size():返回容器中有效元素个数
front():返回容器中第一个元素的引用
push_back():在容器尾部插入元素
pop_back():删除容器尾部元素

5,默认情况下priority_queue是大堆。

简单使用

stack_queue_4_18

模拟实现

stack_queue_4_16

deque

优点:1,头尾插入删除,效率很高

2,下标随机访问效率也还可以,但是比vector的效率低。

缺点:1,中间的插入删除需要全部挪动,效率很低。

(不可以对单个buff扩容,因为会影响+=操作的访问)

2,对比vector,list没有极致的优点

相关文章:

  • container_memory_working_set_bytes` 与 `container_memory_usage_bytes` 的区别
  • C++ 学习指南
  • Redis 处理读请求
  • 安全文件共享实际上是什么样的呢?
  • 解决找不到字体的问题
  • windows搭建xwiki17服务器
  • [Java · 铢积寸累] 数据结构 — 数组类型 - Arrays 工具类详解
  • 稳定PCDN运营效率
  • 【leetcode100】零钱兑换Ⅱ
  • 物联网赋能玻璃制造业:实现设备智能管理与生产协同
  • Ubuntu 上安装 Conda
  • 安装 Conda 环境
  • csv数据的写入
  • SharpMap与TerraLib:C#与C++开源GIS库
  • 蓝桥杯算法实战分享:C/C++ 题型解析与实战技巧
  • 【“星睿O6”AI PC开发套件评测】GPU矩阵指令算力,GPU带宽和NPU算力测试
  • npm i 出现permission denied
  • AtCoder 第402场初级竞赛 A~E题解
  • JavaScript 渲染内容爬取实践:Puppeteer 进阶技巧
  • Socket
  • 龚正会见巴西里约热内卢州州长克劳迪奥·卡斯特罗
  • 南北皆宜的“中国酒都”宿迁:下一程如何更“醇厚绵长”
  • 什么样的赛事能推进建设全球著名体育城市,上海半马就是答案
  • “雷公”起诉人贩子王浩文案将开庭:索赔6元,“讨个公道”
  • 经济参考报:安全是汽车智能化的终极目标
  • 累计亏损10亿元,桂林旅游怎么了?