C++初阶 Stack和Queue的介绍和使用

news2025/8/7 9:21:08

作者:@小萌新
专栏:@C++初阶
作者简介:大二学生 希望能和大家一起进步
本篇博客介绍:本篇博客会简单的介绍STL中的栈和队列
在这里插入图片描述

本章目标

  1. 复习下栈这种数据结构特点
  2. 知道怎么使用STL中的栈
  3. 复习下队列这种数据结构的特点
  4. 知道怎么使用STL中的队列

Stack 栈

栈的特点

栈是一个先进先出的数据结构 它的数据从头部插入 从头部删除

一般来说栈是使用顺序表来实现的

在这里插入图片描述

如果说你对于栈这种数据结构还不熟悉或者说根本没学过的话 可以参考下萌新

的这篇博客

初阶数据结构栈

STL中的stack

定义

在STL中有两种使用方式

  1. 直接指定类型使用
    像这样子
   stack<int> st1;
  1. 指定适配器实现栈
    像这样子
	stack<int, vector<int>> st2;
	stack<int, list<int>> st3;

这里的适配器是什么意思呢?

实际上就是指定了我们在底层使用哪种方式实现栈

比如说

stack<int, vector<int>> st2;

这就是指定了我们在底层使用vector实现stack

使用

在这里插入图片描述

这里的这些在经历了string vector list之后是不是就轻车熟路了啊

所以下面我们直接用一段遍历将上面重要的函数全部用一边就可以

代码和显示效果如下

int main()
{
	stack<int> st1;
	//stack<int, vector<int>> st2;
	//stack<int, list<int>> st3;
	st1.push(1);
	st1.push(2);
	st1.push(3);
	st1.push(4);
	st1.push(5);

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


	return 0;
}

在这里插入图片描述

队列 Queue

队列的特点

队列是一种经典的尾插头出的数据结构 类似下图

在这里插入图片描述
如果说你对于队列这种数据结构还不熟悉或者说根本没学过的话 可以参考下萌新

的这篇博客

初阶数据结构队列

STL中的queue

定义

定义方式和栈一眼 同样有两种

方式一:

  queue<int> q1;

方式二:

指定适配器定义

代码表示如下

	queue<int,vector<int>> q2;
	queue<int,list<int>> q3;

使用

在这里插入图片描述
还是一眼 我们使用一段代码来实现上面大部分重要的内容

代码和演示效果图如下

int main()
{
	queue<int> q1;
	queue<int,vector<int>> q2;
	queue<int,list<int>> q3;


	q1.push(1);
	q1.push(2);
	q1.push(3);
	q1.push(4);
	q1.push(5);

	while (!q1.empty())
	{
		cout << q1.front() << " ";
		q1.pop();
	}

	return 0;
}

在这里插入图片描述

总结

在这里插入图片描述

stack和queue是两种容器适配器 大体与我们之前学的数据结构类似

本篇博客介绍了STL库中stack和queue怎么使用
其实学到这里了 这些使用方式应该一眼就能看明白了 不过为了博客整体的工整萌新还是写下了这篇文章
如果这篇文章帮助到了你 别忘记一键三连啊
阿尼亚 哇酷哇酷!

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

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

相关文章

多功能螯合剂FAPI-04-NH2,FAPI04-氨基,含有DOTA配体显示出良好的药代动力学

NH2-FAPI-04产品描述&#xff1a; FAPI是FAP的特异性抑制剂。在这些FAPI中&#xff0c;含有DOTA配体(FAPI-04)的[68Ga]Ga-DOTA-FAPI-04 PET/CT能显示出良好的体内药代动力学&#xff0c;导致快速kidney​清除和注射后10分钟至3小时的低背景活性。不久之后&#xff0c;[68Ga]Ga-…

Mybatis+Mybatis-plus+SpringBoot整合(完整版)

文章目录一、Mybatis&#xff08;一&#xff09;Mybatis简介1、Mybatis历史2、Mybatis特性3、Mybatis下载4、和其它持久化层技术对比&#xff08;二&#xff09;搭建Mybatis1、MySQL不同版本的注意事项2、创建Maven工程1、引入依赖3、创建MyBatis的核心配置文件3.1、核心配置文…

SpringMVC学习笔记

目录 SpringMVC 为什么出现了SpringMVC? 什么是SpringMVC? 简单使用 SpringMVC工作流程 设置bean加载控制 在服务器启动时加载SpringConfig 后台接受五种类型参数传递 REST风格 描述 RESTful入门 新建以下目录 实体类 控制器 统一异常处理 新建Code类用于记…

c#反序列化json

语句&#xff1a;JsonConvert.DeserializeObject(json); json字符串&#xff1a; [ { "id": "130000", "cityList": [ { "cityList": [ { …

Linux root用户忘记密码的恢复方法

日常运维工作中可能会遇到服务器忘记root密码的问题&#xff0c;本次以红帽8为例&#xff0c;讲解在忘记root密码后如何绕过密码登录然后重新设置密码的办法 目录 准备工作 问题复现 启动并进入引导 进入修复模式 修改用户密码文件 重置密码 准备工作 下载与系统匹配的…

Python编程 元组的创建

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.元组知识点 二.元组(tuple) 1.元组介绍(掌握) 2.元组创建(掌握) 3.…

第十四届蓝桥杯校模拟赛-编程大题详解+代码(二)

前言&#xff1a;这几天有不少小伙伴催促我尽快更新后五道编程题题解&#xff0c;然鄙人实在水平有限&#xff0c;实事求是&#xff0c;能力不足&#xff0c;不堪众望。思索良久&#xff0c;第九题有解题思路且已完成部分解题&#xff0c;但未完全完成&#xff0c;第十题尚未有…

python 数据挖掘与机器学习核心技术

近年来&#xff0c;Python编程语言受到越来越多科研人员的喜爱&#xff0c;在多个编程语言排行榜中持续夺冠。同时&#xff0c;伴随着深度学习的快速发展&#xff0c;人工智能技术在各个领域中的应用越来越广泛。机器学习是人工智能的基础&#xff0c;因此&#xff0c;掌握常用…

《FFmpeg Basics》中文版-11-格式之间转换

正文 ffmpeg工具的最常见用法是从一种音频或视频格式转换为另一种相关的格式。 格式参数在输出文件之前由-f选项设置&#xff0c;或者在输入文件之前也有原始输入&#xff0c;具体的可用格式信息在[显示帮助和功能]一章中列出来了。 多媒体格式介绍 文件格式 媒体格式是能够…

OpenSSH移植到Linux开发板

OpenSSH移植到Linux开发板 文章目录OpenSSH移植到Linux开发板前言一、移植zlib库二、 移植openssl库三、 移植openssh库1. 在开发板中创建目录2. 将文件拷贝到对应目录下3. 创建对应软连接4. 开发板上生成密钥文件5. 开启SSH前言 在Linux开发中&#xff0c;有时候需要远程登录…

BLE学习(2):广播包报文格式详解

文章目录1 广播通道2 广播包参考手册&#xff1a; BLUETOOTH SPECIFICATION Version 5.0为了能够充分理解蓝牙的广播&#xff0c;我们先了解一下BLE架构的GAP(Generic Access Profile)层。 GAP层提供决定蓝牙设备之间如何交互的框架&#xff0c;包括&#xff1a; 蓝牙设备的角…

PHP 底层的运行机制和工作原理

阅读目录阐述一、PHP的设计理念及特点PHP 为什么没有多线程&#xff1f;1、PHP 与多线程2、PHP是单线程&#xff0c;多进程模型3、 php为什么选择多进程&#xff0c;而不是多线程4、场景二、PHP 四层体系1、上层应用2、Sapi3、Extensions&#xff08;扩展&#xff09;4、Zend 引…

【目标检测】Fast R-CNN论文详细解读

目录&#xff1a;Fast R-CNN论文解读一、前言1. R-CNN的步骤及缺点2. SPP Net的步骤二、Fast R-CNN1. R-CNN的缺点2. SPPNet的缺点3. Fast R-CNN的优点4. Fast R-CNN的模型结构和训练流程5. 初始化预训练网络结构6. 微调7. 多任务损失函数8. ROI层的反向传播9. SGD超参数选择10…

Java后端面试到底要如何准备?

我把面试准备拆成以下几个步骤&#xff1a; 1.写简历 2.整理好自己最熟悉的项目&#xff0c;相对有代表性的项目。 3.整理自己的技术栈 4.收拾好自己的自我介绍 5.被八股文 6.模拟面试 7.针对模拟面试表现出来的问题进行改进 8.开始投投简历 本人 10 年开发经验&#…

jsp课程设计管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 课程设计管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql&#xff0c;使…

单片机毕业设计 stm32智能手环

文章目录1 简介1 项目背景意义2 系统方案的设计3 系统总体结构4 系统硬件设计4.1 主控模块4.2 姿态解算模块&#xff1a;MPU60504.3 DS3231实物图4.4 TFT显示模块4.5 硬件连接效果5 跌倒检测算法原理5.1 跌倒检测的判定流程5.2 关键算法实现1 简介 &#x1f525; Hi&#xff0…

CIPU落地专有云:是“小众需求”还是“机会之门”?

2022 年 11 月&#xff0c;云栖大会主论坛&#xff0c;阿里巴巴集团副总裁、阿里云智能基础产品事业部负责人蒋江伟分享了阿里云专有云的一项新进展 —— CIPU 落地飞天企业版。在分析师峰会上&#xff0c;阿里巴巴集团研究员、阿里云专有云总经理刘国华也向分析师们详细介绍了…

双一流高校全球通邮经验:Coremail安全海外中继提升科研效率

在这个“后疫情时代”&#xff0c;高校间的国际交流合作更应架起桥梁&#xff0c;承担起文明交流互鉴的责任&#xff0c;邮件往来交流作为学术交流的重要工具&#xff0c;保障全球高校学术交流安全畅通&#xff0c;是Coremail针对高校教育邮件服务的重点之一。 针对高校行业面临…

python一键采集高质量陪玩,心动主播随心选......

人生苦短&#xff0c;我用python 北京时间11月6日上午&#xff0c;2022英雄联盟全球总决赛&#xff08;S12&#xff09;冠亚军决赛在美国旧金山大通中心球馆进行&#xff0c;随着DRX的成功夺冠&#xff0c;在全球进一步掀起了电竞热潮。 newzoo 《2022电竞市场报告》显示&…

《MySQL实战45讲》——学习笔记18 “索引失效、函数/隐式转换“【建议收藏】

本文介绍几种MYSQL中索引失效的典型SQL用法&#xff0c;包括对索引字段使用函数、索引字段隐式类型转换&#xff08;如字符串转数值类型&#xff0c;实质上也是使用CAST函数&#xff09;、索引字段隐式字符编码转换&#xff08;如utf8mb4字符集与utf8字符集的等值判断&#xff…