当前位置: 首页 > news >正文

C++学习 --stack

目录

1, 什么是stack

2, 创建stack

2-1, 标准数据类型

2-2, 自定义数据类型

2-3, 其他创建方式

3, 操作stack

3-1, 赋值

3-2, 插入元素(push)

3-3, 查询元素

3-4, 删除元素

3-5, 判断是否为空

3-6, 交换

3-7, 获取长度


1, 什么是stack

C++中的容器数据类型, 叫着栈容器, 元素是先进后出, 只有顶部元素支持操作,所以不支持遍历

2, 创建stack

通过stack<数据类型> 对象名, 可创建stack, 数据类型可以是标准数据类型, 也可以是自定义类型

2-1, 标准数据类型

//stack中元素数据类型为string
stack<string> s1;

2-2, 自定义数据类型

//stack中元素的数据类型为Myclass
stack<Myclass> s1;

2-3, 其他创建方式

stack<Myclass> s1;
//通过拷贝构造方式, 将一个已存在的s1, 拷贝给s2
stack<Myclass> s2(s1);

3, 操作stack

3-1, 赋值

由于stack是一个容器, 只支持将一个stack赋值给另外一个stack

stack<Myclass> s2 = s1;

3-2, 插入元素(push)

通过对象名.push(元素), 向stack中插入元素

Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
stack<Myclass> s1;
s1.push(m1);
s1.push(m2);
s1.push(m3);

3-3, 查询元素

通过对象名.top(), 获取栈顶元素

Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
stack<Myclass> s1;
s1.push(m1);
s1.push(m2);
s1.push(m3);
cout << s1.top().m_name << endl;
cout << s1.top().m_age << endl;

3-4, 删除元素

通过对象名.pop(), 删除栈顶元素

s1.pop();

3-5, 判断是否为空

可通过对象名.empty(), 判断栈是否为空, 为空返回0, 不为空返回1

cout << s1.empty() << endl;

3-6, 交换

可通过对象名1.swap(对象名2), 交换两个栈的元素

s1.swap(s2);

3-7, 获取长度

可通过s1.size(), 删除栈顶元素

cout << s1.size() << endl;

http://www.lryc.cn/news/239374.html

相关文章:

  • 简单但好用:4种Selenium截图方法了解一下!
  • 【报错记录】解决使用Kotlin写的SpringBoot项目使用Aspect切面无法生效的问题
  • 在python中分别利用numpy,tensorflow,pytorch实现数据的增加维度(升维),减少维度(降维)
  • 基于天鹰算法优化概率神经网络PNN的分类预测 - 附代码
  • Flutter的Event Loop
  • HarmonyOS ArkTSTabs组件的使用(六)
  • 【MetaLearning】有关Pytorch的元学习库higher的基本用法
  • 火山引擎 ByteHouse 的增强型数据导入技术实践
  • 依赖库:Ceres-solver-2.0.0安装
  • LeSS敏捷框架高效生产力实践
  • matlab绘图函数plot和fplot的区别
  • 场景交互与场景漫游-对象选取(8-2)
  • 模拟Spring源码思想,手写源码,理解注解
  • 各种LLM数据集包括SFT数据集
  • Sleuth
  • 新手必看!!附源码!!STM32通用定时器输出PWM
  • 静态文件鉴权
  • 计算机视觉与机器学习D1
  • layui(2.8.18)生成验证码
  • MAX/MSP SDK学习05:A_GIMME方法
  • LangChain: 类似 Flask/FastAPI 之于 Django,LangServe 就是「LangChain 自己的 FastAPI」
  • mmdet全教程
  • 1992-2021年省市县经过矫正的夜间灯光数据(GNLD、VIIRS)
  • Guava的Retryer
  • Docker实践笔记7:构建MySQL 8镜像
  • # 学习 Prolog 和 离散逻辑的16个等价公式:一趟有趣的逻辑之旅
  • Win11+Modelsim SE-64 10.6d搭建UVM环境
  • LeetCode(32)串联所有单词的子串【滑动窗口】【困难】(含图解)
  • 【Delphi】使用TWebBrowser执行JavaScript命令传入JSON参数执行出错解决方案
  • 04 if进阶