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

news2025/7/8 6:27:25

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;
}

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

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

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

相关文章

Web漏洞-XXE漏洞(详细)

XXE漏洞XXE全称为XML External Entity Injection即XMl外部实体注入漏洞原理&#xff1a;XXE漏洞发生在应用程序解析XML输入时&#xff0c;没有禁止外部实体的加载&#xff0c; 导致用户可以控制外部的加载文件&#xff0c;造成XXE漏洞。XXE漏洞触发点往往是可以上传xml文件的位…

行测-判断推理-类比推理-逻辑关系-交叉关系

花瓶和瓷器是交叉关系&#xff0c;除了瓷花瓶&#xff0c;还有塑料花瓶等花瓶中有一部分是瓷器&#xff0c;瓷器中有一部分是花瓶A选项&#xff1a;电视机是电器的一种&#xff0c;种属关系&#xff0c;排除AB选项&#xff1a;中药和植物是交叉关系&#xff0c;还有动物入药等&…

< 开源项目框架:推荐几个开箱即用的开源管理系统 - 让开发不再复杂 >

文章目录&#x1f449; SCUI Admin 中后台前端解决方案&#x1f449; Vue .NetCore 前后端分离的快速发开框架&#x1f449; next-admin 适配移动端、pc的后台模板&#x1f449; django-vue-admin-pro 快速开发平台&#x1f449; Admin.NET 通用管理平台&#x1f449; RuoYi 若…

SpringBoot 整合 Activiti7

一.pom依赖引入 通过该 pom.xml 文件所导入的坐标&#xff0c;我们就可以实现 activiti7 与 Springboot 整合 <!--activiti7与SpringBoot整合的相关依赖--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-start…

【教学典型案例】04.生产环境app打包导致不能自动升级

目录一&#xff1a;背景介绍现象原因产生影响二&#xff1a;问题复现过程1、注册服务空间2、添加Admin项目3、创建uniapp项目4、App打包5、发布到升级中心三&#xff1a;总结一&#xff1a;背景介绍 现象 用户端安装了74版本的app&#xff0c;不能自动升级。 原因 产生该问…

win10 +cuda11.3.1+VS2019-社区版+drive445.87

参考&#xff1a;https://blog.csdn.net/kunhe0512/article/details/124331221这里的推荐离线安装包的方式进行cuda安装&#xff0c;官方也给了conda的安装方式&#xff0c;我试过一直出问题&#xff0c;所以安装包的方式比较靠谱&#xff0c;windows比linux下更方便。vs2019-c…

Uipath Excel 自动化系列20-Insert Chart(插入图表)

活动描述 Insert Chart(插入图表)&#xff1a;在Excel工作表的指定位置插入图表&#xff0c;该活动需与Use Excel File 活动选择的 Excel 文件一起使用。 使用如下图&#xff1a; Insert Chart(插入图表)属性配置 属性 作用 DisplayName 在设计器面板中设置活动显示的名称…

计算机网络笔记——计算机网络体系结构

计算机网络笔记——计算机网络体系结构1.计算机网络体系结构1.1 计算机网络概述1.1.1 计算机网络的概念1.1.2 计算机网络组成物理组成工作方式组成功能组成1.1.3 计算机网路的功能1.1.4 计算机网络的分类1.1.5 计算机网络的标准化公工作及相关组织1.2 计算机网络体系结构与参考…

Python调用Shell命令 (python,shell 混合编程)

Python经常被称作“胶水语言”&#xff0c;因为它能够轻易地操作其他程序&#xff0c;轻易地包装使用其他语言编写的库&#xff0c;也当然可以用Python调用Shell命令。 用Python调用Shell命令有如下几种方式&#xff1a; 1. os.system os.system("The command you want&…

fiddler

文章目录fiddler简介URL与HTTPURLhttp模拟测试场景弱网测试自定义规则前端性能分析及优化fiddler 简介 Fiddler是位于客户端和服务端的HTTP代理 目前最常用的http抓包工具之一功能非常强大&#xff0c;是web调试的利器 监控浏览器所有的HTTP/HTTPS流量查看、分析请求内容细节伪…

Android之屏幕适配方案

在说明适配方案之前&#xff0c;我们需要对如下几个概念有所了解&#xff1a;屏幕尺寸&#xff0c;屏幕分辨率&#xff0c;屏幕像素密度。 屏幕尺寸 屏幕尺寸指屏幕的对角线的物理长度&#xff0c;单位是英寸&#xff0c;1英寸2.54厘米。 比如常见的屏幕尺寸&#xff1a;5.0、5…

粒子群优化SVM含水率预测

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 SVM应用实例,基于粒子群改进SVM的含水率回归分析 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性…

python --生成时间序列,作为横轴的标签。时间跨越2008-2022年,生成每年的6-10月的第一天作为时间序列

python 生成制定的时间序列作为绘图时x轴的标签 问题需求 在绘图时&#xff0c;需要对于x轴的标签进行专门的设置&#xff0c;整体时间跨越2008年-2022年&#xff0c;将每年的6-10月的第一天生成一条时间序列&#xff0c;绘制成图。 解决思路 对于时间序列的生成&#xff0…

【react 全家桶】条件渲染

文章目录05 【条件渲染】基础配置1.条件判断语句2.三目运算符3.与运算符&&4.元素变量5.阻止组件渲染05 【条件渲染】 在 React 中&#xff0c;你可以创建不同的组件来封装各种你需要的行为。然后&#xff0c;依据应用的不同状态&#xff0c;你可以只渲染对应状态下的部…

VB实现点爆炸效果

需在窗体放置以下 4 个控件&#xff0c;所有控件不用设置任何属性&#xff0c;均采用默认设置&#xff1a; ’ Picture1&#xff0c;Command1&#xff0c;Check1&#xff0c;Timer1 Option Explicit Dim I Dim ctD() As tyD, ctDs As Long, ctR As Single Private Type tyD x…

java单元测试(二)H2数据库篇

java单元测试&#xff08;二&#xff09;H2数据库篇一、什么是H2&#xff1f;二、Springboot项目集成H22.1、引入H2依赖2.2、初始化spring配置文件application.test.xml2.3、初始化H2数据库DDL/DML语句三、编写单元测试3.1、首先我们创建测试类3.2、编写测试用例3.3、测试用例一…

elasticsearch集群搭建(ES集群搭建)

目录一、下载Elasticsearch1.选择你要下载的Elasticsearch版本二、采用通用搭建集群的方法三、配置三台es1.上传压缩包到任意一台虚拟机中2.解压并修改配置文件(配置单台es)3.配置三台es集群一、下载Elasticsearch 1.选择你要下载的Elasticsearch版本 es下载地址 这里我下载…

Mysql架构以及Mysql引擎

Mysql架构1.连接层&#xff1a;负责接收客户端的连接请求最上层是一些客户端和连接服务&#xff0c;包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。2.服务层&#xff1a;sql接口接收s…

【UEFI实战】BIOS与IPMI

KCS KCS全称是Keyboard Controller Style&#xff0c;关于这个名称不用过多的追究&#xff0c;只需要知道它是系统&#xff08;BIOS和OS&#xff09;和BMC通信的一种基本方式即可。本文将介绍BIOS下的KCS接口&#xff0c;包括接口使用方式和数据。内容参考自《ipmi-second-gen…

[LeetCode周赛复盘] 第 99 场双周赛20230304

[LeetCode周赛复盘] 第 99 场双周赛20230304 一、本周周赛总结二、 [Easy] 2578. 最小和分割1. 题目描述2. 思路分析3. 代码实现三、[Medium] 2579. 统计染色格子数1. 题目描述2. 思路分析3. 代码实现四、[Medium] 2580. 统计将重叠区间合并成组的方案数1. 题目描述2. 思路分析…