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

C++回顾(二十二)—— stack容器 与 queue容器

22.1 stack容器

(1) stack容器简介

  • stack是堆栈容器,是一种“先进后出”的容器。
  • stack是简单地装饰deque容器而成为另外的一种容器。
  • 添加头文件:#include <stack>

(2)stack对象的默认构造

  • stack采用模板类实现, stack对象的默认构造形式: stack stkT;
    stack <int> stkInt; //一个存放int的stack容器。
    stack <float> stkFloat; //一个存放float的stack容器。
    stack <string> stkString; //一个存放string的stack容器。

    //尖括号内还可以设置指针类型或自定义类型。

(3)stack的push()与pop()方法

  • stack.push(elem); //往栈头添加元素
  • stack.pop(); //从栈头移除第一个元素

(4)stack对象的拷贝构造与赋值

  • stack(const stack &stk); //拷贝构造函数
  • stack& operator=(const stack &stk); //重载等号操作符

(5)stack的数据存取

  • stack.top(); //返回最后一个压入栈元素

(6)stack的大小

  • stack.empty(); //判断堆栈是否为空
  • stack.size(); //返回堆栈的大小

完整示例代码:

#include <iostream>
#include <stack>
#include <stdlib.h>
#include <time.h>using namespace std;int main()
{stack<int> s;srand(time(NULL));int num;for (int i = 0; i < 10; i++){num = rand() % 10;s.push(num);cout << num << "进栈成功" << endl;}cout << "********************" << endl;cout << "栈顶元素是 " << s.top() << endl;cout << "栈的大小" << s.size() << endl;//栈和队列不存在遍历,不存在迭代器//s.begin();cout << "********************" << endl;while (!s.empty()){cout << s.top() << "出栈" << endl;s.pop();}return 0;
}

运行结果:
在这里插入图片描述

22.2 queue容器

(1)queue容器简介

  • queue是队列容器,是一种“先进先出”的容器。
  • queue是简单地装饰deque容器而成为另外的一种容器。
  • 需要添加头文件:#include <queue>

(2)queue对象的默认构造

  • queue采用模板类实现,queue对象的默认构造形式:queue queT; 如:
    queue<int> queInt; //一个存放int的queue容器。
    queue<float> queFloat; //一个存放float的queue容器。
    queue<string> queString; //一个存放string的queue容器。

    //尖括号内还可以设置指针类型或自定义类型。

(3)queue的push()与pop()方法

  • queue.push(elem); //往队尾添加元素
  • queue.pop(); //从队头移除第一个元素

(4)queue对象的拷贝构造与赋值

  • queue(const queue &que); //拷贝构造函数
  • queue& operator=(const queue &que); //重载等号操作符

(5)queue的数据存取

  • queue.back(); //返回最后一个元素
  • queue.front(); //返回第一个元素

(6)queue的大小

  • queue.empty(); //判断队列是否为空
  • queue.size(); //返回队列的大小

完整示例代码:

#include <iostream>
#include <queue>using namespace std;int main()
{queue<int> q;for (int i = 0; i < 10; i++){q.push(i);cout << i << "进队成功" << endl;}cout << "********************" << endl;cout << "队头元素" << q.front() << endl;cout << "队尾元素" << q.back() << endl;cout << "队列大小" << q.size() << endl;cout << "********************" << endl;while (!q.empty()){cout << q.front() << "出队" << endl;q.pop();}return 0;
}

运行结果:
在这里插入图片描述

相关文章:

C++回顾(二十二)—— stack容器 与 queue容器

22.1 stack容器 &#xff08;1&#xff09; stack容器简介 stack是堆栈容器&#xff0c;是一种“先进后出”的容器。stack是简单地装饰deque容器而成为另外的一种容器。添加头文件&#xff1a;#include <stack> &#xff08;2&#xff09;stack对象的默认构造 stack…...

逻辑优化基础-disjoint support decomposition

先遣兵 在了解 disjoint support decomposition 之前&#xff0c;先学习两个基本的概念。 disjoint 数学含义上的两个集合交集&#xff0c;所谓非相交&#xff0c;即交集为空集。 A∩BC⊘A \cap B C \oslash A∩BC⊘ support 逻辑综合中的 supportsupportsupport 概念是…...

保姆级使用PyTorch训练与评估自己的DaViT网络教程

文章目录前言0. 环境搭建&快速开始1. 数据集制作1.1 标签文件制作1.2 数据集划分1.3 数据集信息文件制作2. 修改参数文件3. 训练4. 评估5. 其他教程前言 项目地址&#xff1a;https://github.com/Fafa-DL/Awesome-Backbones 操作教程&#xff1a;https://www.bilibili.co…...

Java8新特性:Stream流处理使用总结

一. 概述 Stream流是Java8推出的、批量处理数据集合的新特性&#xff0c;在java.util.stream包下。结合着Java8同期推出的另一项新技术&#xff1a;行为参数化&#xff08;包括函数式接口、Lambda表达式、方法引用等&#xff09;&#xff0c;Java语言吸收了函数式编程的语法特…...

Java基准测试工具JMH高级使用

去年&#xff0c;我们写过一篇关于JMH的入门使用的文章&#xff1a;Java基准测试工具JMH使用&#xff0c;今天我们再来聊一下关于JMH的高阶使用。主要我们会围绕着以下几点来讲&#xff1a; 对称并发测试非对称并发测试阻塞并发测试Map并发测试 关键词 State 在很多时候我们…...

问心 | 再看token、session和cookie

什么是cookie HTTP Cookie&#xff08;也叫 Web Cookie或浏览器 Cookie&#xff09;是服务器发送到用户浏览器并保存在本地的一小块数据&#xff0c;它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。 什么是session Session 代表着服务器和客户端一次会话…...

Ubuntu 安装 CUDA and Cudnn

文章目录0 查看 nvidia驱动版本1 下载Cuda2 下载cudnn参考&#xff1a;0 查看 nvidia驱动版本 nvidia-smi1 下载Cuda 安装之前先安装 gcc g gdb 官方&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive&#xff0c;与驱动版本进行对应&#xff0c;我这里是12.0…...

【漏洞复现】Grafana任意文件读取(CVE-2021-43798)

docker环境搭建 #进入环境 cd vulhub/grafana/CVE-2021-43798#启动环境&#xff0c;这个过程可能会有点慢&#xff0c;保持网络通畅 docker-compose up -d#查看环境 docker-compose ps直接访问虚拟机 IP地址:3000 目录遍历原理 目录遍历原理&#xff1a;攻击者可以通过将包含…...

磨金石教育摄影技能干货分享|春之旅拍

春天来一次短暂的旅行&#xff0c;你会选择哪里呢&#xff1f;春天的照片又该如何拍呢&#xff1f;看看下面的照片&#xff0c;或许能给你答案。照片的构图很巧妙&#xff0c;画面被分成两部分&#xff0c;一半湖泊&#xff0c;一半绿色树林。分开这些的是一条斜向的公路&#…...

中断以及 PIC可编程中断控制器

1 中断分为同步中断&#xff08;中断&#xff09;和异步中断&#xff08;异常&#xff09; 1.1 中断和异常的不同 中断由IO设备和定时器产生&#xff0c;用户的一次按键会引起中断。异步。 异常一般由程序错误产生或者由内核必须处理的异常条件产生。同步。缺页异常&#xff…...

SecureCRT 安装并绑定ENSP设备终端

软件下载链接链接&#xff1a;https://pan.baidu.com/s/1WFxmQgaO9bIiUTwBLSR4OA?pwd2023 提取码&#xff1a;2023 CRT安装&#xff1a;软件可以从上面链接进行下载&#xff0c;下载完成后解压如下&#xff1a;首先双击运行scrt-x64.8.5.4 软件&#xff0c;进行安装点击NEXT选…...

ESP32设备驱动-TCS3200颜色传感器驱动

TCS3200颜色传感器驱动 1、TCS3200介绍 TCS3200 和 TCS3210 可编程彩色光频率转换器在单个单片 CMOS 集成电路上结合了可配置的硅光电二极管和电流频率转换器。 输出是方波(50% 占空比),其频率与光强度(辐照度)成正比。 满量程输出频率可以通过两个控制输入引脚按三个预…...

< JavaScript小技巧:Array构造函数妙用 >

文章目录&#x1f449; Array构造函数 - 基本概念&#x1f449; Array函数技巧用法1. Array.of()2. Array.from()3. Array.reduce()4. (Array | String).includes()5. Array.at()6. Array.flat()7. Array.findIndex()&#x1f4c3; 参考文献往期内容 &#x1f4a8;今天这篇文章…...

【17】组合逻辑 - VL17/VL19/VL20 用3-8译码器 或 4选1多路选择器 实现逻辑函数

VL17 用3-8译码器实现全减器 【本题我的也是绝境】 因为把握到了题目的本质要求【用3-8译码器】来实现全减器。 其实我对全减器也是不大清楚,但是仿照对全加器的理解,全减器就是低位不够减来自低位的借位 和 本单元位不够减向后面一位索要的借位。如此而已,也没有很难理解…...

2023年全国最新二级建造师精选真题及答案19

百分百题库提供二级建造师考试试题、二建考试预测题、二级建造师考试真题、二建证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 37.下列纠纷中&#xff0c;属于劳动争议范围的有()。 A.因劳动保护发生的纠纷 B.家庭与家政…...

Java中的 this 和 super

1 this 关键字 1.1 this 访问本类属性 this 代表对当前对象的一个引用 所谓当前对象&#xff0c;指的是调用当前类中方法或属性的那个对象this只能在方法内部使用&#xff0c;表示对“调用方法的那个对象”的引用this.属性名&#xff0c;表示本对象自己的属性 当对象的属性和…...

ESP32设备驱动-红外寻迹传感器驱动

红外寻迹传感器驱动 1、红外寻迹传感器介绍 红外寻迹传感器具有一对红外线发射管与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,输出接口会输出一个数字信号(低电平或高电平,取决于电路…...

初识BFC

初识BFC 先说如何开启BFC&#xff1a; 1.设置display属性&#xff1a;inline-block&#xff0c;flex&#xff0c;grid 2.设置定位属性&#xff1a;absolute&#xff0c;fixed 3.设置overflow属性&#xff1a;hidden&#xff0c;auto&#xff0c;scroll 4.设置浮动&#xf…...

随想录二刷Day17——二叉树

文章目录二叉树9. 二叉树的最大深度10. 二叉树的最小深度11. 完全二叉树的节点个数12. 平衡二叉树二叉树 9. 二叉树的最大深度 104. 二叉树的最大深度 思路1&#xff1a; 递归找左右子树的最大深度&#xff0c;选择最深的 1&#xff08;即加上当前层&#xff09;。 class So…...

Weblogic管理控制台未授权远程命令执行漏洞复现(cve-2020-14882/cve-2020-14883)

目录漏洞描述影响版本漏洞复现权限绕过漏洞远程命令执行声明&#xff1a;本文仅供学习参考&#xff0c;其中涉及的一切资源均来源于网络&#xff0c;请勿用于任何非法行为&#xff0c;否则您将自行承担相应后果&#xff0c;本人不承担任何法律及连带责任。 漏洞描述 Weblogic…...

lingbot-depth-pretrain-vitl-14效果展示:多光照/反光表面深度补全自然边缘案例

lingbot-depth-pretrain-vitl-14效果展示&#xff1a;多光照/反光表面深度补全自然边缘案例 1. 引言&#xff1a;当深度图遇上“反光杀手” 你有没有遇到过这种情况&#xff1f;用深度相机扫描一个光滑的桌面&#xff0c;或者对着窗户拍一张照片&#xff0c;结果生成的深度图…...

S2-Pro大模型CentOS 7生产环境部署全攻略:安全与高可用配置

S2-Pro大模型CentOS 7生产环境部署全攻略&#xff1a;安全与高可用配置 1. 前言&#xff1a;为什么需要生产级部署方案 当你第一次在测试环境跑通S2-Pro大模型时&#xff0c;那种兴奋感可能让你迫不及待想上线使用。但现实往往很骨感——测试环境能跑通&#xff0c;不代表生产…...

格式排版改到崩溃?高校教授说用这几个AI论文写作工具

论文写作总让人头大&#xff1f;格式排版改到崩溃、文献检索效率低、逻辑结构不清晰……这些痛点你是不是也遇到过&#xff1f;其实&#xff0c;只要用对 AI 工具、走对流程&#xff0c;就能事半功倍。资深教授建议&#xff0c;从选题到降重&#xff0c;全程使用专业工具辅助&a…...

go logrus和zap各有什么优缺点

Go 生态中两个最流行的结构化日志库对比&#xff1a;Logrus vs Zap 对比 特性 Logrus Zap 性能 较慢&#xff08;反射-based&#xff09; 极快&#xff08;零分配、结构化&#xff09; API 风格 链式调用&#xff0c;类似 Python logging 显式字段&#xff0…...

告别Armoury Crate臃肿困扰:GHelper革新性华硕笔记本硬件控制方案带来性能突破

告别Armoury Crate臃肿困扰&#xff1a;GHelper革新性华硕笔记本硬件控制方案带来性能突破 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and…...

双系统安装完整指南——以双Win11为例

一、安装前的准备工作 1. 硬件与系统要求 CPU&#xff1a;支持 Windows 11&#xff08;Intel 8 代 / AMD Ryzen 2000 及以上&#xff09;主板&#xff1a; 支持 UEFI支持 TPM 2.0 磁盘&#xff1a; GPT 分区格式至少 120GB 空闲空间&#xff08;建议每个系统 ≥ 80GB&#xf…...

零基础玩转RetinaFace:一键部署人脸检测,合影/监控都能精准识别

零基础玩转RetinaFace&#xff1a;一键部署人脸检测&#xff0c;合影/监控都能精准识别 1. 为什么选择RetinaFace人脸检测 在当今数字时代&#xff0c;人脸检测技术已经成为众多应用的基础功能。无论是社交媒体上的自动标记、安防监控系统的人脸识别&#xff0c;还是手机相册…...

DAMOYOLO-S边缘端部署指南:STM32F103C8T6嵌入式平台推理优化

DAMOYOLO-S边缘端部署指南&#xff1a;STM32F103C8T6嵌入式平台推理优化 1. 引言 如果你正在为一个资源极其有限的嵌入式设备寻找一个能跑起来的目标检测方案&#xff0c;比如用一块小小的STM32F103C8T6开发板&#xff0c;那么这篇文章就是为你准备的。你可能已经尝试过一些经…...

开发者必备:OpenClaw+Qwen3-32B镜像调试Python脚本全攻略

开发者必备&#xff1a;OpenClawQwen3-32B镜像调试Python脚本全攻略 1. 为什么选择OpenClawQwen3-32B组合&#xff1f; 去年冬天调试一个图像处理项目时&#xff0c;我每天要反复执行十几个Python脚本&#xff0c;手动检查日志、截图比对结果。直到发现OpenClaw这个"数字…...

数字古籍获取:高效工具使用指南

数字古籍获取&#xff1a;高效工具使用指南 【免费下载链接】bookget bookget 数字古籍图书下载工具 项目地址: https://gitcode.com/gh_mirrors/bo/bookget 当你在研究清代方志时&#xff0c;面对图书馆网站繁琐的翻页操作和分散的资源链接&#xff0c;是否渴望一种能批…...