C++ stack容器

使用Jacob实现将Word文件转换为Pdf文件 如果是首次使用 jacob,建议先直接从 github上下载 zip包,因为在实现Word转Pdf的时候,不仅需要用到 jacob.jar,还需要 jacob.dll 库,而zip包中都有。官方使用文档可以参考:https://github.com/freemansoft/jacob-project/blob/main/docs/UsingJacob.md。// 如果安装的是微软的 Office,需要使用 Word.Application。 阅读详情

stack是堆栈容器,是一种“先进后出”的容器。
如图:
在这里插入图片描述
唯有等最后面进来的车子出去后,里面的车子才可以陆陆续续的出来!

stack是基于deque容器而实现的容器。

使用需包含头文件#include <stack>


定义
stack<int> s1;	// 默认使用deque存储元素
//stack<int, deque<int>> s1;

// 可以自行修改为其他容器存储元素
stack<int, vector<int>> ss1;
stack<int, list<int>> ss2;

stack<double> s2;
stack<char> s3;

stack<int> s4(s1);	// 拷贝构造
s1 = s4;			// 赋值重载

// 元素入栈
s1.push(1);

// 元素出栈
s1.pop();

// 返回最后一个入栈的元素
s1.top();
因其返回的是引用,所以可以直接进行赋值:s1.top() = 10; // 可以进行修改

// 判断容器是否为空
s1.empty();

// 获取栈里面的元素个数
s1.size();

// 交换栈中的元素
s1.swap(s4);


注意: stack容器没有迭代器,所以如果想要输出容器里面的值,唯有一下方法:

while (!s1.empty()) {			// 如果不为空则继续执行
	cout << s1.top() << " ";	// 输出最后一个入栈的值
	s1.pop();					// 最后一个元素出栈
}
cout << endl;

测试代码:

#include <iostream>
#include <Windows.h>
#include <stack>
#include <vector>
#include <list>

using namespace std;

int main(void) {
	stack<int> s1;	// 默认使用deque存储元素
	//stack<int, deque<int>> s1;
	stack<int, vector<int>> ss1;
	stack<int, list<int>> ss2;
	
	stack<double> s2;
	stack<char> s3;

	stack<int> s4(s1);	// 拷贝构造
	s1 = s4;			// 赋值重载

	// 元素入栈
	s1.push(1);
	s1.push(3);
	s1.push(5);

	// 元素出栈
	s1.pop();

	// 返回最后一个入栈的元素
	s1.top();	// s1.top() = 10;	// 可以进行修改


	// 判断栈是否为空
	if (!s1.empty()) {
		// 获取栈里面的元素个数
		cout << s1.size() << endl;
	}

	// 交换栈中的元素
	s1.swap(s4);

	while (!s1.empty()) {			// 如果不为空则继续执行
		cout << s1.top() << " ";	// 输出最后一个入栈的值
		s1.pop();					// 最后一个元素出栈
	}
	cout << endl;

	system("pause");
	return 0;
}

STL其他容器学习链接:

  1. C++ priority_queue优先级队列容器

  2. C++ queue队列容器

  3. C++ map 和 multimap 容器

  4. C++ set 和 multiset 容器

  5. C++ list容器

  6. C++ deque容器

  7. C++ vector容器

西安交通大学软件学院——分布式系统练习题(综合题) 摘要:本文探讨了分布式系统的核心特性与关键问题。首先阐述了分布式系统的8种透明性特性,包括访问、定位、迁移等。然后通过具体案例分析了分布式事务的回滚机制、域名解析的迭代与递归过程、不同分布式系统的异同比较。重点讨论了RPC通信中客户端/服务器崩溃的处理方法,包括消灭、再生和到期三种策略。最后介绍了Lamport时间戳算法在进程通信中的应用及问题解决方案。全文涵盖了分布式系统设计中的透明性、可靠性、一致性等核心问题。 阅读详情

相关推荐

谈谈 FOC和BLDC 电机控制

更具体地说,通过 “Park 变换”,我们可以把三相交流电流信号转换成两相直流电流信号,从而可以把三相交流电机的控制变得和两相直流电机控制一样简单。在内环 “电流环”中,一些比较重要的模块有 “Clark 变换” 和 “Park 变换” 等数学模块、电机电流信号检测模块以及能够提供电机的转速和转角位置信息的模块。日前,Qorvo 电机控制应用高级系统/应用工程师张绍发表了一个与 BLDC 和 FOC 相关的演讲,科普了 FOC 的相关知识,还讲解了 Qorvo 用于简化 FOC 实施方案的方法。

U_YAO的博客 2116

C++中stack的用法(超详细,入门必看)

【C++STL】之stack的用法。本文主要讲解了C++STL中的stack的定义及初始化和一些stack的常用用法。如果你觉得本文对你有所帮助的话,还望不吝惜您的三连支持一下我哦!

H1727548的博客 3万+

计算pi小数点后10000位

数据结构课上,老师让我们计算一下pi的10000位,复习一下面向对象。 First Try:定义一个高精度类hp(high precision),实现加减乘除,输入输出,然后随便找一个公式,比如Wallis公式,全都用hp进行计算。 现实是:大数乘大数或者大数除大数,实在是太慢了。而且Wallis公式收敛太慢。 Second Try先找到一个收敛较快的公司:BBP公式,观察公式发现,...

我的技术人生 7394

C++的STL库常用API--stack

stack的简介 stack是堆栈容器,是一种“先进后出”的容器。 stack是简单地装饰deque容器而成为另外的一种容器。 stack使用之前的准备#include <stack> using namespace std;stack对象的默认构造 stack采用模板类实现, stack对象的默认构造形式: stack stkT; 如: stack stkI

No.96 2217

prometheus普罗米修斯集监控外部k8s

prometheus普罗米修斯集监控外部k8s

你是我一生的追求 2247

游戏引擎揭秘:大厂为何死磕自研?

游戏引擎本质与商业价值解析 游戏引擎是集成了渲染、物理、动画等核心功能的开发工具包,其价值在于让开发者免于重复编写底层代码,专注于游戏内容创作。商业引擎(如Unity/Unreal)虽降低了开发门槛,但头部厂商仍坚持自研引擎,主要基于以下考量: 经济性:长期项目分摊自研成本后,比商业引擎分成更划算; 可控性:完全掌握底层代码,能针对性优化核心玩法需求; 技术壁垒:专属引擎成为厂商的竞争优势,如米哈游的跨平台渲染技术; 项目适配:超大型游戏(开放世界/MMO)需要深度定制解决方案。 这种"短期高投入

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 263

栈的输出_C语言|——顺序栈(Stack)

定义:栈是限定仅在表尾进行插入或者删除操作的线性表。因此对栈来说,尾端有其特殊含义,称为栈顶(top),相应的表头端称为栈底(bottom)。不含元素的空表称为空栈。 栈的特性:栈又称为先进后出的线性表。下面我们来利用顺序栈实现基本的栈的操作:先定义顺序栈:#define MAXSIZE 10 typedef struct { int data[MAXSIZE];//空间--静态分配 i...

weixin_39732491的博客 3840

分子对接时,如何批量处理小分子受体和蛋白配体,让他们快速转化为pdbqt格式,然后用vina跑?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1222

STL详解(二) 栈容器Stack

一、Stack简介 stack 是容器适配器的一种。要使用 stack,必须包含头文件 <stack>。 stack就是“栈”。栈是一种后进先出的元素序列,访问和删除都只能对栈顶的元素(即最后一个被加入栈的元素)进行,并且元素也只能被添加到栈顶。栈内的元素不能访问。如果一定要访问栈内的元素,只能将其上方的元素全部从栈中删除,使之变成栈顶元素才可以。 容器适配器中的数据是以 LIF...

流年的博客 5171

HITECH海泰克触摸屏如何使用串口进行程序的下载和上传(拨码设置)以及离散量报警相关设定?

HITECH海泰克触摸屏如何使用串口进行程序的下载和上传(拨码设置)以及离散量报警相关设定? 首先,我们进行触摸屏一侧的设置,如下图所示: 触摸屏背后有拨码开关,当我们需要上传或下载程序时,需要将7#开关拨到上面; 左侧是DC24V电源接口; 下方是COM1、COM2和COM3通信端口,选择我们需要的端口后,插上通信电缆,拔掉24V电源,然后重新上电; 然后,屏幕会进入如下图所示界面,此时显示当前选择的端口为COM2,我们点击F2“config”,进入设置界面, 可以看到COM2端口是“Enabled”

Robot_PLC_HMI_Automation 3万+

46、聚类算法在智能交通数据分析中的应用

本文探讨了聚类算法在智能交通数据分析中的应用,介绍了K-均值算法、K-中心点算法和基于模型的聚类算法的基本原理及特点,并结合实际交通数据讨论了其应用场景与挑战。通过聚类分析,能够从海量交通数据中发现隐藏模式,为交通管理和规划提供科学依据。文章还展示了具体的案例分析和实现流程,为未来智能交通系统的发展提供了参考。

zz67890的博客 133

C++栈(stack)

栈:栈是一种数据结构,存储以及查找数据时只能访问栈的一端。栈后进先出(LIFO, last in first out) 栈的操作包括: Clear() ——清空栈 IsEmpty()——判断栈是否为空 Push(el)——将元素el放到栈的顶部 Pop——弹出栈顶部的元素 TopEL()——获取栈顶部的元素,但不删除该元素 一、栈的向量实现,直接代码 Stack.h //

行走 835

《测控仪器设计课后习题答案-浦昭邦-王宝光

《测控仪器设计课后习题答案-浦昭邦-王宝光 1.1. 测控仪器的概念是什么? 测控仪器则是利用测量和控制的理论,采用机、电、光各种计量测试原理及控制系统与计算机相结合的一种范围广泛的测量仪器。 1.2. 为什么说测控仪器的发展与科学技术发展密切相关? 仪器仪表的用途和重要性— 遍及国民经济各个部门,深入到人民生活的各个角落,仪器仪表中的计量测试仪器与控制仪器统称为测控仪器,可以说测控仪器的水平是科学技术现代化的重要标志。 仪器仪表的用途: 在机械制造业中:对产品的静态与动态性能测试;加工过程的控制与监测;设

无名何许人的博客 2976

《C++》stack容器详解

C++中的stack详解

Maysheeo的博客 2207

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C++ stack 容器

C++ stack 容器 开发工具与关键技术:Visual Studio、C++ 作者:张国军 撰写时间:2019年07月17日 stack 是堆栈容器,是一种“先进后出”的容器。 stack 是简单地装饰 deque 容器而成为另外的一种容器。#include stack 对象的默认构造 //stack 对象的默认构造形式: stack stkT; stack stkInt; //一个存放...

weixin_44545509的博客 734

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C++ stack容器详解

C++ stack容器stack容器的基本概念stack的常用接口1.构造函数2.赋值操作3.数据存取4.大小操作测试: stack容器的基本概念 stack是一种先进先出的数据结构,被称为栈,它只有一端可以出入。 栈中进入数据称为——入栈(push) 栈中弹出数据称为——出栈(pop) 注意: 栈可以判断是否为空,也可以返回栈中元素个数,但栈不允许有遍历行为 使用stack容器必须包含头文件#include< stack > stack的常用接口 1.构造函数 stack st

qq_52324409的博客 6549

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++STL容器之stack

在C++中,stack是一个容器适配器,它基于其他容器实现,提供了先进后出(LIFO)的数据结构,是C++中常用的标准容器之一,定义在<stack>头文件中。stack是C++中常用的容器之一,掌握其相关用法和特性可以让你在开发代码中事半功倍。如有错误,敬请指正!!!

qq_55527904的博客 711

C++中的stack容器详解

C++ STL中的stack是一个容器适配器,提供后进先出(LIFO)数据结构。它基于deque、list或vector等底层容器实现,默认使用deque。主要操作包括push()/emplace()压栈、pop()弹栈和top()访问栈顶元素,时间复杂度均为O(1)。stack不支持迭代器,仅允许访问栈顶元素。实际应用中常用于括号匹配、表达式求值等场景。使用时需注意调用top()或pop()前检查栈是否为空,并根据性能需求选择合适的底层容器实现。

C++发展史系列已完结,这段时间将会迎来系列作品——C++STL系列,敬请期待。作者邮箱:ljq20110324@outlook.com 587

C++容器用法简介——stack

C++容器用法简介——stack 翻译自cplusplus 原文链接 一、简介        stack是一种容器适配器(STL的容器分为顺序容器和关联容器,容器适配器,是对这两类容器进行包装得到的具有更强的约束力的容器),被设计来用于操作先进后出(FILO)结构的情景,在这种情况下, 元素的插入和删除都只能在容器的尾部进行。        stack通过容器适配器来实现,是一种

gscsdlz的博客 9704

C++stack容器stack 常用接口

C++stack容器stack 常用接口 功能描述:栈容器常用的对外接口 //入栈 --- push //出栈 --- pop //返回栈顶 --- top //判断栈是否为空 -- empty //返回栈大小 --- size #include <iostream> #include <stack> using namespace std; void test() { //创建栈容器 栈容器必须符合先进后出原则 stack<int> s; //向栈中添加元素,叫做

qq_36711295的博客 616

C++_stack容器

stack简介 Stack简介 stack是堆栈容器,是一种“先进后出”的容器。 stack是简单地装饰deque容器而成为另外的一种容器。 #include stack的简单插入 void main1() { stack<int> s; for(int i=0;i<10;i++) { s.push(i + 1); } while (!s.empty()) ...

weixin_43916755的博客 282

c++ stl栈容器stack用法介绍

转载:https://blog.youkuaiyun.com/lyj2014211626/article/details/66967761 stack堆栈容器 堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom)。堆栈的元素插入称为入栈,元素的删除称为出栈。由于元素的入栈和出栈总在栈顶进行,因此,堆栈是一个后进先出(Last In...

now 2559

深入解析 C++ 标准库中的 Stack 和 Queue 容器

stack和queue是 C++ STL 提供的两种非常重要的容器适配器。它们通过限制数据的访问方式,提供了简单而高效的接口,适用于不同的应用场景。stack适用于后进先出的场景,而queue适用于先进先出的场景。通过本文的示例代码,读者可以快速掌握这两种容器的基本用法,并在实际项目中灵活应用。

qq_57063846的博客 1104

C++容器:stack和queue

队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。标准容器类deque和list满足了这些要求。默认情况下,如果没有为queue实例化指定容器类,则使用标准容器deque。queue文档。

DDDDDDDRDDR的博客 1021

【C++ 十四】C++ stack容器

本文包含stack基本概念、stack构造函数、stack赋值操作、stack数据存取、stack大小操作。

qq_45138120的博客 2702

C++ STL容器之stack

C++ stack 容器 定义于头文件 <stack>之中,申明为: template< class T, class Container = std::deque<T> > class stack; std::stack 类是容器适配器,它给予程序员栈的功能——特别是 FILO (先进后出)数据结构。 该类模板表现为底层容器的包装器——只提供...

hestyle的博客 532
上一篇: C++ priority_queue优先级队列容器
下一篇: C++ 入门算法,新手必看之:单向“链表”(一)
cpp_learners
博客等级 码龄7年 1526粉丝 274原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值