C++中《stack和queue的使用》

news2024/11/27 18:28:19

本文主要讲解栈和队列的常见接口的使用

文章目录

  • 一、栈的介绍和使用
    • 1.1 stack的介绍
    • 1.2 stack的使用
  • 二、queue的介绍和使用
    • 2.1 queue的介绍
    • 2.2 queue的使用


一、栈的介绍和使用

1.1 stack的介绍

1️⃣stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。
2️⃣stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。
3️⃣stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:

  • empty:判空操作
  • back:获取尾部元素操作
  • push:尾部插入元素操作
  • pop:尾部删除元素操作

4️⃣标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器,默认情况下使用deque

示意图:
在这里插入图片描述

1.2 stack的使用

在这里插入图片描述

void test_stack()
{
	stack<int> s;
	s.push(1);
	s.push(2);
	s.push(3);
	s.push(4);

	while (!s.empty())
	{
		cout << s.top() << " ";
		s.pop();
	}
	cout << endl;
	cout << s.size() << endl;
	cout << s.empty() << endl;
}

二、queue的介绍和使用

2.1 queue的介绍

1️⃣队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。
2️⃣队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。
3️⃣底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器应至少支持以下操作:

  • empty:检测队列是否为空
  • size:返回队列中有效元素的个数
  • front:返回队头元素的引用
  • back:返回队尾元素的引用
  • push:在队列尾部入队列
  • pop:在队列头部出队列

4️⃣标准容器类deque和list满足了这些要求。默认情况下,如果没有为queue实例化指定容器类,则使用标准容器deque。
示意图:
在这里插入图片描述

2.2 queue的使用

在这里插入图片描述

void test_queue()
{
	queue<int> q;
	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);

	while (!q.empty())
	{
		cout << q.front() << " ";
		q.pop();
	}
	cout << endl;
	cout << q.size() << endl;
	cout << q.empty() << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CS5366电路原理图|CS5366demobord参考电路|单芯片PD集成4K60Hz拓展坞芯片设计

ASL CS5366是Type-C转HDMI 4K60HZPDUSB3.0单芯片集成芯片&#xff0c;芯片方案带DSC压缩功能且最高可支持支持RGB 4:4:4 。 CS5366参数特性&#xff1a; 支持最高分辨率/定时4k60Hz 支持DSC v1.2a&#xff0c;并与前一版本向后兼容 支持DSC解码器和直通模式 嵌入式32位RISC-V…

2023年天府杯全国大学生数学建模竞赛B题中国环境问题的治理解题全过程

2023年天府杯全国大学生数学建模竞赛 B题 中国环境问题的治理 原题再现&#xff1a; 问题背景&#xff1a;   随着经济的快速发展和人口的持续增长&#xff0c;中国的环境问题已经成为了一个急需解决的重要问题。这些环境问题不仅对人们的健康和生活质量产生了巨大的影响&a…

笔试强训7

作者&#xff1a;爱塔居 专栏&#xff1a;笔试强训 作者简介&#xff1a;大三学生&#xff0c;希望和大家一起进步 目录 day9 day10 day9 一. 单选 1.下面程序的输出是:() String x"fmn"; x.toUpperCase(); String yx.replace(f,F); yy"wxy"; System.out…

Redis的内存策略(未完成)

过期Key处理: 1)Redis之所以性能强大&#xff0c;最主要的原因就是基于内存来存储&#xff0c;然而单节点的Redis内存不宜设置的过大&#xff0c;否则会影响持久化或者是主从复制的性能&#xff0c;可以通过修改配置文件来设置redis的最大内存&#xff0c;通过maxmemory 1gb&am…

为什么数字化转型就应该选择低代码?一文详解

数字化转型在这几年被反复提及&#xff0c;我们听得耳朵都快起茧子了。数字化在当前经济社会发展中扮演着越来越重要的角色&#xff0c;可以帮助企业更好地理解消费者和市场需求&#xff0c;更好地应对市场竞争&#xff0c;同时也可以提高企业效率&#xff0c;促进经济发展。 究…

WICC · 出海嘉年华倒计时!精彩不容错过,「指南」一手掌握

6.2 广州 WICC出海嘉年华 精彩不容错过 指南一手掌握 -高端峰会 圆桌会议- 超 有 料 话题剧透 如何在巨头林立的热门赛道成功突围&#xff1f; 如何在迅猛发展的新兴市场深挖价值&#xff1f; 如何在复杂合规政策下实现应用增长&#xff1f; 如何利用好底层技术优化本地化…

pip安装库提示Read timed out更换下载源

在使用pip install xx安装库的时候提示 Read timed out. 一般解决方案就两种&#xff1a; 1.延长timeout时间&#xff0c;治标不治本&#xff0c;谁知道到底该延长多少时间才能百分百每次安装都成功。 使用方式&#xff1a; pip --default-timeout1000 install 需要安装的库…

强化学习笔记-07 n-step Bootstrapping 多步TD时分学习

本文是博主对《Reinforcement Learning- An introduction》的阅读笔记&#xff0c;不涉及内容的翻译&#xff0c;主要为个人的理解和思考。 上一节介绍了TD算法&#xff0c;其采用了Bootstrapping方法&#xff0c;当前过去的预估以及即期收益来更新累积收益函数&#xff1a; 前…

通过期待已久的帕丽斯·希尔顿人物化身系列,成为元宇宙的偶像

5,555 个以帕丽斯希尔顿为主题的独特人物化身将于 5 月 31 日推出&#xff0c;每个人物化身均可在 The Sandbox 中使用。 我们与帕丽斯希尔顿及全球流行文化中心的下一代娱乐公司 11:11 Media 合作&#xff0c;很高兴宣布帕丽斯希尔顿的人物化身系列即将推出&#xff01; 作为对…

Word导出PDF时图片质量下降问题的解决方法

Word导出PDF时图片质量下降问题的解决方法 ⭐️ 最近&#xff0c;在使用Word写完论文以后&#xff0c;另存为“PDF”文件时&#xff0c;发现文档中的图像质量明显下降。本文介绍的方法可以将Word保存为图片无压缩的带有标签的高质量PDF文件&#xff0c;建议仅在定稿时进行以下…

2023系统分析师下午案例分析真题

真题1 阅读以下关于软件系统分析与建模的叙述,在纸上回答问题1至3. 说明: 某软件公司拟开发一套汽车租赁系统,科学安全和方便的管理租赁公司的各项业务,提高公司效率,提升利率。注册用户在使用系统镜像车辆预约时需执行以下操作: (a) 用户登录系统 (b) 查询车辆信息 (c) …

业务安全情报第16期 | 大促8成优惠券竟被“羊毛党”抢走!?

目录 八成秒杀账户是羊毛党 羊毛党风险分析 安全防护及产品组合建议 近期&#xff0c;某电商小程序举办美食节营销活动&#xff0c;提供高额折扣券&#xff0c;并允许用户进行秒杀。然而&#xff0c;羊毛党团伙利用作弊手段&#xff0c;抢购囤券&#xff0c;然后倒卖变现&am…

释放 AI 的力量|2023 年 8 款最佳 AI 图像生成器

1973 年&#xff0c;Harold Cohen 设计的 AARON 系统创造了第一件人工智能生成的艺术品。黑白涂鸦远非所谓的美术&#xff0c;但它们为 DALLE-2 和 Midjourney 等一些出色的 AI 图像生成器奠定了基础。 在过去的 50 年里&#xff0c;AI 图像生成器变得更加智能。通过分析和学习…

线程的概念

文章目录 1. Linux线程概念1.1 什么是线程 2. 页表3. 线程的优点4. 线程的缺点5. 线程用途6.进程和线程7. 线程异常 1. Linux线程概念 1.1 什么是线程 线程是CPU调度的基本单位&#xff0c;它是在进程内部运行的执行流&#xff0c;线程比进程粒度更细&#xff0c;调度成本更低…

(2022,实体迁移)GAN 的通用 one-shot 域自适应

Generalized One-shot Domain Adaptation of Generative Adversarial Networks 公众号&#xff1a;EDPJ 目录 0. 摘要 1. 简介 2. 相关工作 3. 基础 4. 方法 4.1 总览 4.2 风格固定与范例重建 4.3 内部分布学习&#xff08;Internal distribution learning&#xff0…

计算机硬件(1)

1.4 计算机硬件 电脑硬件是计算机系统中最基本的部分&#xff0c;可理解成看得见、摸得着的实物。一台电脑是由许多的零部件组成&#xff0c;只有这些零部件组合在一起协调工作&#xff0c;才能称之为电脑。一般计算机的硬件可以简单分为以下部件&#xff1a; 主机&#xff08…

sql比赛复习

systemctl start mysqld create database if not exit; 导入数据 编码、分割符号 alter更 http://172.19.100.21:9000/#!/auth 导入数据 简单插叙 创建视图 disti

嵌入式保温箱温湿度监测解决方案

无论是生鲜还是水果&#xff0c;在运输过程中都要保持恒温以保食材新鲜&#xff0c;这不仅需要强大的冷链运输车来实现&#xff0c;还需要搭配冷链保温箱。 传统的冷链是通过保温箱蓄冷剂&#xff0c;使用快递进行配送。由于市面保温箱功能不一&#xff0c;不同货品又对温度及保…

使用HbuilderX3.8.3_把开发的小程序发布为Html5页面上传到_免费托管空间---uniapp_小程序开发工作笔记009

首先使用hbuider开发完程序,然后,再去,点击发型,然后选择 上传网站到服务器,然后选择 选择新建,然后点击 新建以后然后这里点击新建服务空间,然后再去 这里选择免费服务空间,然后 然后点击立即购买,然后 点

基于AT89C52单片机的简易电子琴设计与仿真

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87853299?spm1001.2014.3001.5503 源码获取 主要内容&#xff1a; 本设计是基于51系列的单片机进行的设计&#xff0c;利用所给键盘的八个键&#xff0c;能够发出…