C++stack容器

2023-11-04

1、stack 基本概念

概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口
栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为
在这里插入图片描述

栈中进入数据称为 — 入栈 push

栈中弹出数据称为 — 出栈 pop

2、stack 常用接口

功能描述:栈容器常用的对外接口
构造函数:

  • stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式
  • stack(const stack &stk); //拷贝构造函数

赋值操作:

  • stack& operator=(const stack &stk); //重载等号操作符

数据存取:

  • push(elem); //向栈顶添加元素
  • pop(); //从栈顶移除第一个元素
  • top(); //返回栈顶元素

大小操作:

  • empty(); //判断堆栈是否为空
  • size(); //返回栈的大小
#include <stack>

//栈容器常用接口
void test01()
{
	//创建栈容器 栈容器必须符合先进后出
	stack<int> s;

	//向栈中添加元素,叫做 压栈 入栈
	s.push(10);
	s.push(20);
	s.push(30);

	while (!s.empty()) {
		//输出栈顶元素
		cout << "栈顶元素为: " << s.top() << endl;
		//弹出栈顶元素
		s.pop();
	}
	cout << "栈的大小为:" << s.size() << endl;

}

int main() {

	test01();

	system("pause");

	return 0;
}

总结:

  • 入栈 — push
  • 出栈 — pop
  • 返回栈顶 — top
  • 判断栈是否为空 — empty
  • 返回栈大小 — size
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++stack容器 的相关文章

  • 为什么使用abs()或fabs()而不是条件否定?

    在 C C 中 为什么要使用abs or fabs 不使用以下代码即可查找变量的绝对值 int absoluteValue value lt 0 value value 这与较低级别的指令较少有关吗 您提出的 有条件的abs 并不等于std
  • C++ 中的软(不是:弱)引用 - 这可能吗?有实施吗?

    在 C 中我正在使用boost shared ptr and boost weak ptr自动删除不再需要的对象 我知道这些与引用计数一起工作 在 Java 中 内存由垃圾收集器管理 它将内置对象引用视为strong WeakReferen
  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • Mono 无法保存用户设置

    我在 Mono Ubuntu 上保存用户设置时遇到问题 这是代码示例 private void Form1 Load object sender EventArgs e string savedText Properties Setting
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • 组合框项目为空但数据源已满

    将列表绑定到组合框后 其 dataSource Count 为 5 但组合框项目计数为 0 怎么会这样 我习惯了 Web 编程 而且这是在 Windows 窗体中进行的 所以不行combo DataBind 方法存在 这里的问题是 我试图以
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • Silverlight Datagrid:在对列进行排序时突出显示整个列

    我的 Silverlight 应用程序中有一个 DataGrid 我想在对该列进行排序时突出显示整个列 它在概念上与上一个问题类似 Silverlight DataGrid 突出显示整列 https stackoverflow com qu
  • 无法使用 Ninject 将依赖项注入到从 Angular 服务调用的 ASP.NET Web API 控制器中

    我将 Ninject 与 ASP NET MVC 4 一起使用 我正在使用存储库 并希望进行构造函数注入以将存储库传递给其中一个控制器 这是实现 StatTracker 接口的上下文对象 EntityFramework public cla
  • 为什么我使用google'smtp'无法发送电子邮件?

    我有以下程序使用 smtp gmail com 587 发送电子邮件 namespace TestMailServer class Program static void Main string args MailMessage mail
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 热重载时调用方法

    我正在使用 Visual Studio 2022 和 C 制作游戏 我想知道当您热重新加载应用程序 当它正在运行时 时是否可以触发一些代码 我基本上有 2 个名为 UnloadLevel 和 LoadLevel 的方法 我想在热重载时执行它
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • spring IOC 控制反转详解生命周期

    spring IOC 控制反转 通过Spring提供的IoC容器 可以将对象间的依赖关系交由Spring进行控制 避免硬编码所造成的过度程序耦合 用户也不必再为单例模式类 属性文件解析等这些很底层的需求编写代码 可以更专注于上层的应用 AO
  • R手册(Common)--R语言基础包

    文章目录 环境设置 输入输出 文件操作 进度条 数据创建 数据选取及数据信息 列联表 内置常量 数学 矩阵运算 模型 其他函数 R语言基础包 base stats 环境设置 系统函数 函数 说明 options 显示或设置当前选项 digi
  • maven项目引入外部jar包,并实现打包

    1 在项目模块的src目录下创建 lib 文件 将要引用的jar包放到lib下 2 在该项目模块内的pom xml内引入依赖
  • 向svn服务器添加新项目

    确保电脑上已经安装了TortoiseSVN客户端 在之前已经从svn上checkout代码下来的文件夹中 点击右键 TortoiseSVN gt Repo browser 这样就可以看到整个svn服务器的目录了 得到svn服务器目录后 就可
  • ZooKeeper实战面试题(2021.11)

    文章目录 ZooKeeper是什么 ZooKeeper 提供了什么 Zookeeper 文件系统 Zookeeper 怎么保证主从节点的状态同步 恢复模式 广播模式 四种类型的数据节点 Znode Zookeeper Watcher 机制
  • 关于 vue 做文件导出的总结

    关于文件导出有2中方法 一种是后端写接口 前端调用 一种是纯前端做 下面分别介绍这两种方法 一 后端做下载 导出功能 前端调接口 注意 需要指定服务器响应的数据类型 gt responseType blob 导出 下载 import req
  • Java常用对象API——Map集合

    java util 接口 Map
  • Kettle的表或视图不存在问题【已解决】

    1 问题描述 在用Kettle做job的时候 报如下的错 2019 11 18 14 28 42 OUT FICP PARAM DATA 2 0 ERROR version 8 3 0 0 371 build 8 3 0 0 371 fro
  • Ubuntu常用终端命令

    Ubuntu常用终端命令 1 显示任务管理器 ps aux 2 kill进程 kill PID号 3 后台运行程序 nohup python3 xxxx py 4 查看文件列表 ls 5 进入文件夹 cd 文件夹名 6 解压与压缩命令 6
  • 数字水印-期末复习

    期末复习时一边复习 自学 一边记录所得 有点儿乱但能明白数字水印是个啥的话对着这个复习还是比较有用 RSA 可用于加密 数字签名 密钥分配 PGP PKI等 对RSA的主要支持和批评 形式简单 易于理解 研究深入 支持广泛 既能用来加密 又
  • 静态vector容器成员变量的定义和初始化

    想要定义一个静态容器成员变量 保存数据以便后面共享 1 要现在 h文件的类内先声明该成员 class A public static const int vecSize COMM NUMBERS 整形静态常量可以直接初始化 static v
  • 解决windows10资源管理器无限刷新、高占用的解决方法

    首先是我使用Edge添加pdf笔记的时候 Edge浏览器自动崩溃 我就重新打开 于是就开始了疯狂的无限刷新 并且cpu高占用 如果不是因为这个原因导致的无限刷新 那么这个方法或许不适合 这是一个关于浏览器读取pdf的一个bug 具体解决方案
  • 【Node.js安装与配置(详细步骤)及vue项目配置】

    Node js安装与配置 详细步骤 前言 下载Node js 安装Node js 添加环境变量 新建 node global 和 node cache 两个文件夹 查看是否配置成功 可能由于权限问题导致不成功 需要设置文件权限 vue项目配
  • 取消请求、axios实现abort

    缘由 工作项目使用fetch 暂无法提供abort 取消请求 功能 虽然官方说可以使用 AbortSignal对象的实例 将允许通过AbortController与fetch请求通信或者终止fetch 稍微复杂了也不好封装 于是将目光转回a
  • 香港服务器部署网站慢,用香港云主机服务器网站慢怎么解决?

    用香港云主机服务器搭建的网站出现了卡顿慢的情况 要怎么解决呢 这是服务器的问题吗 服务器之家来为各位用户进行一个简要的分析 希望对大家有帮助 1 检查本地客户端 本地客户端访问网络诊断分析系统 测试本地访问各域名的速度 根据测试结果 确认本
  • c++学习:1.变量定义

    1 列表初始化 c 语言定义了初始化的好几种形式 例如 int a 0 int a 0 int a 0 int a 0 使用花括号初始化是c 11标准 当用于内置类型的变量时 该种初始化 花括号 有一个重要特点 如果我们使用列表初始化且初始
  • php设置表格宽度,php-如何使用preg_replace将表格宽度更改为100%

    我想将表格宽度更改为100 如果宽度值以像素为单位 我的意思是 如果表格宽度看起来像width 500 或width 500px 那么我想用100 替换它 我的意思是像这个width 100 有人可以帮我preg replace吗 cont
  • vue文本点击样式设置

    vue文本点击样式设置 嘚吧嘚 干就完了 光标边小手 文本域样式修改 hover语法 语法一 语法二 语法三 语法四 学以致用 效果实现 嘚吧嘚 相信当家在写代码的过程中 文本的点击事件是常有的吧 如历史搜索记录 页面跳转等 本次就就分享一
  • win11 vmware 显示 “未能启动虚拟机“ 解决办法

    方法1 我使用这个方法解决 1 按下 win s 键 或直接搜索 系统信息 并打开 2 向下找到 基于虚拟化的安全性 如果是 正在运行 使用下面的方法将它关闭 3 搜索 内核隔离 打开窗口后将内存完整性关闭 如果是关闭状态 直接进行下一步
  • C++stack容器

    1 stack 基本概念 概念 stack是一种先进后出 First In Last Out FILO 的数据结构 它只有一个出口 栈中只有顶端的元素才可以被外界使用 因此栈不允许有遍历行为 栈中进入数据称为 入栈 push 栈中弹出数据称