C++基础知识 - stack容器

2023-11-18

stack容器

  • stack是堆栈容器,是一种“先进后出”的容器。
    在这里插入图片描述
  • stack是基于deque容器而实现的容器。
  • #include < stack>

stack对象的默认构造

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

stack<int> s1;				//默认使用deque
stack<int, vector<int>> s2;	//指定使用vector
stack<int, list<int>> s3;	//指定使用list
//尖括号内还可以设置指针类型或自定义类型。

stack的push()与pop()方法

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

	stack<int> s1;
	s1.push(1);	//先入1
	s1.push(2);
	s1.pop();	//把元素2移出队列
	s1.push(3);

	while(!s1.empty()) {
		cout << s1.top() << endl;	//调用队尾的元素  输出: 3 1
		s1.pop();	//出栈
	}

stack对象的拷贝构造与赋值

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

	stack<int> s1, s2;
	s1.push(1);	//先入1
	s1.push(2);
	s1.push(3);
	s2 = s1;			//赋值构造函数
	stack<int> s3(s1);	//拷贝构造函数

stack的数据存取

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

	stack<int> s1, s2;
	s1.push(1);	//先入1
	s1.push(2);
	s1.push(3);
	
	s1.top() = 666;	//返回最后一个入栈的元素 修改为666
	while (!s1.empty()) {
		cout << s1.top() << endl;	//调用队尾的元素  输出: 666 2 1
		s1.pop();	//出栈
	}

stack的大小

stack.empty();   	//判断堆栈是否为空
stack.size(); 	    //返回堆栈的大小
	if(s1.empty()){
		cout<<"堆栈为空"<<endl;
	}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++基础知识 - stack容器 的相关文章

  • 如何在 C++ 中的文件末尾添加数据?

    我已按照网上的说明进行操作 此代码应该将输入添加到文件 数据库 的末尾 但当我检查时 数据会覆盖现有数据 请帮忙 这是我的代码 int main string name string address string handphone cou
  • 如何使用MemoryCache代替Timer来触发一个方法?

    以下方法通过等待已运行操作的结果来处理并发请求 对数据的请求可能会使用相同 不同的凭据同时出现 对于每组唯一的凭据 最多可以有一个GetCurrentInternal呼叫正在进行中 当准备就绪时 该呼叫的结果将返回给所有排队的服务员 pri
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良

随机推荐

  • 12. 数据类型 - 集合详解

    Hi 大家好 我是茶桁 通过最近几节课的内容 我们已经了解到了大部分的容器类数据的特性和应用 今天这一节课是容器类数据的最后一部分 让我们今天来详细了解一下 集合 集合是确定的一组无序的数据的组合 注意这一句话中的几个概念 首先是 确定的
  • 怎么讲服务器上的文件装进电脑,怎么把电脑文件放进云服务器

    怎么把电脑文件放进云服务器 内容精选 换一换 Winscp无法连接到服务器 SSH连接工具例如Xshell可以正常连接云服务器 其他SSH工具连接云服务器正常 但是Winscp无法连接到服务器 说明SSH服务是没有问题的 Winscp连接基
  • 使用notepad++批量在每行首尾添加内容

    1 简介 在程序员开发过程中 一个不错的工具是notepad 该工具为notepad的增强 增强了许多的功能 包括程序员喜欢的列块编辑模式 支持众多的插件 例如json格式化 支持markdown语法 一种场景是这样的 比如说上传的工资单中
  • TortoiseGit(小乌龟)设置保存账号密码

    在我们使用Tortoise git 时 默认是需要在每次提交代码时输入你的账号和密码的 这样在实际使用时会觉得非常繁琐且费时 于是我们可以简单设置下配置文件 便可保存下账号密码 下次在使用时就不必再次手动输入 点击 Git 选项 然后点击右
  • C-NOIP1998P3 二的幂次方

    include
  • ARMV8体系结构简介:exclusive monitor

    为了支持exclusive操作 硬件会增加exclusive monitor来支持 一 exclusive monitor exclusive monitor分为2类 local monitor 实现在cpu内部 针对cacheable属性
  • Android 图像模糊处理

    近期接触到了图像模糊处理 用了一些办法可以实现但交互效果不好 在Github上找到的 试了一些办法 觉得还是以下方法 比较靠谱 大致分为两种 一种是RenderScript 一种是国外提供的一种 高斯算法 上代码 来看看 首先来看看andr
  • 西门子PLC S7-1200程序实例 西门子1200与安川机器人TCP/IP通讯,包含机器人GSD文件

    西门子PLC S7 1200程序实例 博图版本V15 仅供电气编程者学习借鉴 1 西门子1200与安川机器人TCP IP通讯 包含机器人GSD文件 2 西门子1200控制6轴伺服电机 四台台脉冲控制台达B2伺服 两台PN通讯控制西门子V90
  • Python 新手入门学习教程、第三方库以及开发工具整合(持续更新)

    目录 一 学习教程 1 python 系统学习教程 python 菜鸟教程 真的挺全面 接口讲解比较全面且有例子参考 通俗易懂 入门必备 2 python api接口文档 官方 python api接口标准库 所有的api接口解释非常详细
  • 算法学习之二分查找

    个人主页 勇敢的小牛儿 推荐专栏 C语言知识点 座右铭 敢于尝试才有机会 今日鸡汤 Is the true wisdom fortitude ambition Napoleon 真正的才智是刚毅的志向 拿破仑 目录 一 二分查找法介绍 二
  • JAVA单元测试框架-13-TestNG中的Listener监听

    使用TestNG中的Listener完成监听测试 通过实现ITestListener里面的方法完成测试过程监听 public class TestListenner implements ITestListener Override pub
  • 浮点数转化为字符串存进数组模块分享(自动保留到小数点后一位)

    目录 一 使用说明 二 模块代码 三 代码讲解 四 作者的话 一 使用说明 1 数据格式 浮点数可以为整数部分不超过3位的所有浮点数 数组格式只能设置为下面这一种 unsigned char fnums 5 0 a 0 用于存放正负 1表示
  • 面向对象编程是什么意思呢?汇总

    https blog csdn net qq 32381815 article details 79119996 面向对象思想 谈谈你对面向对象的理解 https blog csdn net qsbbl article details 71
  • Altium Designer20快捷键整理合集

    花了点时间整理了一下平常经常用到的一些AD20的快捷键操作 自用可取 经过验证均可用 原理图 PCB通用快捷键 保存 CTRL S 打开 CTRL O 关闭 CTRL F4 打印 CTRL P 退出 ALT F4 项目打包 C P 文档切换
  • UnrealEngine4初始设置及个人使用崩溃记录

    日志 1 第一次记录 2020 2 05 版本 4 24 2 UnrealEngine的初始设置 1 在Epic中下载UnrealEngine4之后 1 1 首先 启动 选项 1 2 接着 勾选 输入调试用符号 应用 以后出现新的崩溃问题
  • vue3中如何循环本地图片

  • eNSP实验:DHCP&&安全区域&&安全策略&&静态路由

    解题思路 1 先给各个接口以及server1服务器配置好地址 2 连接Cloud云 利用物理 web 防火墙 方便操作 只用命令行的情况下可以不用这个方法 3 利用DHCP给各个方向接口的PC自动分配好地址 4 利用静态路由的方法 将两个防
  • VimFoundation

    模式 vim 分为两种模式 1 命令模式 2 编辑模式 命令模式 i 进入编辑模式 w 保存 q 退出 强制 syntax on 打开语法高亮 set number 显示行号 cc 剪切当前行 pp 粘贴到当前行 u 撤销3武器3 yy 复
  • 开源大模型资料总结

    基本只关注开源大模型资料 非开源就不关注了 意义也不大 基座大模型 LLaMA 7 13 33 65B 1 4T token LLaMA及其子孙模型概述 知乎 GLM 6 130B ChatGLM基座 GLM General Languag
  • C++基础知识 - stack容器

    stack容器 stack是堆栈容器 是一种 先进后出 的容器 stack是基于deque容器而实现的容器 include lt stack gt stack对象的默认构造 stack采用模板类实现 stack对象的默认构造形式 stack