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

C++中stack的用法

stack是CSTL里的栈容器适配器严格遵守LIFO先进后出最后放进去的元素最先拿出来。必须头文件#includestack #includeiostream using namespace std;或者#includebits/stdc.h//C万能头文件 using namespace std;一.基本定义stack数据类型容器名//stack的定义 stackints1; //定义一个储存数据类型为int的stack容器s1 stackdoubles2; //定义一个储存数据类型为double的stack容器s2 stackstrings3; //定义一个储存数据类型为string的stack容器s3 stack结构体类型s4; //定义一个储存数据类型为结构体类型的stack容器s4 stackint s5[N]; //定义一个储存数据类型为int的stack容器数组,N为大小 stackint s6[N]; //定义一个储存数据类型为int的stack容器数组,N为大小二.stack中常用的成员函数1.push(x):入栈压栈把元素放在栈顶栈长度1stackintch; ch.push(10); ch.push(20); ch.push(30); //栈结构底-10,20,30-顶2.top():取栈顶元素只看不取返回栈顶值不删除coutch.top()//输出结果为30注意空栈调用top()会崩溃使用前必须先判断3.pop()出栈(弹栈)只删不返回删除栈顶元素ch.pop();//删除30 coutch.top.();//现在输出为20注意空栈调用pop()会也直接崩溃4.empty():判断是否为空栈空栈返回true,非空栈返回falseif(ch.empty()) cout栈空endl; else cout栈非空endl;5.size():获取元素个数coutch.size();//当前有两个元素结果为26.swap():交换两个栈stackinta,b; a.push(1); b.push(2); a.swap(b);三.栈的遍历stack不能用for循环和访问下标ch[i],只能循环取top-pop#include bits/stdc.h using namespace std; int main() { stackint ch; ch.push(1); ch.push(2); ch.push(3); // 只能从栈顶一个个拿 while (!ch.empty()) { cout ch.top() ; ch.pop(); } // 输出3 2 1 return 0; }四.完整安全的写法永远先判断空再top/pop,防止崩溃#include bits/stdc.h using namespace std; int main() { stackint st; st.push(5); st.push(6); st.push(7); // 安全遍历 while (!st.empty()) { int val st.top(); cout val endl; st.pop(); } return 0; }五、栈的底层原理简单理解1.stack 不是独立容器是“包装器”2. 默认基于 deque 双端队列​3.只开放尾部插入、尾部删除、尾部访问​4.屏蔽了中间、头部的操作保证只能栈顶操作六.易错点总结非常重要1. ❌ 不能 st[0] 、 st.begin() 、 st.end() 遍历​2. ❌ 空栈 top() / pop() 必崩溃​3. ❌ pop() 没有返回值取值必须 top()​4. ✅ 操作永远只能在栈顶​5. ✅ 顺序一定后进先出
http://www.gsyq.cn/news/1349439.html

相关文章:

  • SCI论文中的地图与空间分析:ArcGIS Pro在水文水环境研究中的完整应用
  • Antigravity cli 体验很差
  • HEIF Utility终极指南:在Windows上完美解决iPhone照片兼容性问题
  • 房地产Agent部署AI助手失败率高达68%?揭秘头部房企私有化部署的4层安全架构与合规红线(内部培训纪要流出)
  • VSCode 打开超大日志文件卡顿崩溃怎么优化设置
  • Spek音频频谱分析器:如何免费快速可视化音频频率的秘密世界
  • 外卖系统源码如何选择?校园外卖APP+小程序平台搭建指南
  • LeagueAkari:英雄联盟玩家的智能工具箱完整指南
  • 沧州各区房屋反复漏水真实原因解析:多数维修问题出在工艺匹配度 - 鲁顺
  • DeepSeek开源生态已悄然覆盖83%国产芯片栈(昇腾/寒武纪/海光),但官方文档仍未披露的3个兼容补丁即将下线
  • 在多模型间灵活切换时Taotoken模型广场的选型体验
  • 今年小满不一般,老辈农谚里藏着农事提醒
  • Paradox游戏模组管理终极指南:如何用IronyModManager告别冲突烦恼
  • 2026年RPA机器人解决方案选型指南:场景化落地适配
  • 【紧急修复】Perplexity同义词推荐突然失准?3分钟诊断清单+3个冷启动fallback方案(含Hugging Face最新patch)
  • 威海各区房屋反复漏水真实原因解析:多数维修问题出在工艺匹配度 - 鲁顺
  • 观察Taotoken在高峰时段的请求成功率与路由稳定性
  • 宜昌各区房屋反复漏水真实原因解析:多数维修问题出在工艺匹配度 - 鲁顺
  • 为Claude Code配置Taotoken后端解决访问不稳定与Token不足问题
  • Firefox 与普通单进程 EXE 在沙箱中的差异分析
  • 在stm32边缘计算场景中观测大模型api用量与成本控制
  • # 热门国产三维扫描仪推荐:2026年5大核心维度横向对比与避坑指南 - 科技焦点
  • 宁德各区房屋反复漏水真实原因解析:多数维修问题出在工艺匹配度 - 鲁顺
  • # 2026年便携式三维扫描仪推荐:从便携性、性价比全方面解析 - 科技焦点
  • 如何用 Python 快速接入 Taotoken 并调用多个大模型
  • Kemono-scraper:构建企业级数字艺术资产管理系统的5大核心技术方案
  • 如何高效获取网盘直链:JavaScript下载助手完整解决方案
  • JCameraPro教学_02.连续自动截图
  • 2026年北京地区艾比森LED显示屏服务商完全选型指南:核心评测 + 避坑手册 - 企业信息深度横评
  • 如何破解macOS百度网盘限速:SVIP高速下载完整指南