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

Stack

1. 标准库 std::stack (最常用)

头文件:#include <stack>

操作 代码 说明 注意
定义 stack<int> s; 定义一个整型栈
入栈 s.push(x); 放入元素 x
看顶 x = s.top(); 获取栈顶元素 不删除元素
出栈 s.pop(); 删除栈顶元素 返回 void (不返回值)
判空 s.empty() 空返回 true 常用于循环条件
大小 s.size() 返回元素个数

❌ 常见死法(Runtime Error):

  1. 合并调用int x = s.pop(); (错误! C++ pop 无返回值)。

标准遍历模板:

while (!s.empty()) {int top_val = s.top(); // 1. 先拿值s.pop();               // 2. 再扔掉// 处理 top_val...
}

2. 用 vector 模拟栈

std::stack 本质是容器适配器,常数稍大且不能遍历内部。竞赛中常用 vector 模拟,速度快且灵活。

栈操作 Vector 等价写法
push(x) v.push_back(x)
pop() v.pop_back()
top() v.back()
empty() v.empty()

优势: 可以用 v[i] 访问栈底或中间元素(标准 stack 做不到)。


3. 手写数组模拟栈 (最快,防 TLE)

如果不使用 STL,这是性能天花板。

const int N = 100010;
int stk[N];
int tt = 0; // tt 代表栈顶指针// 入栈
stk[++tt] = x; // 出栈
tt--; // 取栈顶
int top_val = stk[tt];// 判空
if (tt > 0) { ... }
http://www.jsqmd.com/news/79202/

相关文章:

  • 深入Ascend C(四):多算子融合与图级优化实战——构建高性能Attention自定义Kernel
  • 【题解】Luogu P5322 [BJOI2019] 排兵布阵
  • 代码源挑战赛 Round 41
  • 详细介绍:NumPy / pandas 类型选型、内存占用与性能优化
  • 告别选择困难!2025年远程控制软件场景化终极横评
  • 一种可落地的任务令牌锁机制:设计原理、实战经验与容器化演进
  • [JSK]二叉苹果树
  • 【题解】Luogu P8137 [ICPC2020 WF] ’S No Problem
  • Day 36 官方文档的阅读
  • 青少年编程学习:考级与竞赛如何平衡
  • 2025 Autel MaxiVCI V150 Wireless Dongle: CAN FD/DOIP for Autel 900 Series Scanners
  • 【UI Qt】入门笔记
  • WSL安装方法
  • Ubuntu环境中LLaMA Factory 的部署与配置—构建大语言模型微调平台 - 实践
  • 2025贵阳公墓/公益公墓top5推荐!贵阳优质生态陵园榜单发布,合规保障与人文关怀兼具的安息之所推荐 - 全局中转站
  • 【题解】Luogu P2354 [NOI2014] 随机数生成器
  • 基于Django的农场管理系统
  • rsync交叉编译步骤
  • 下载UCI数据集《Secondary Mushroom》
  • 【题解】P11453 [USACO24DEC] Deforestation S
  • 03 以上版本 Excel 文件解压替换图片
  • 【题解】Luogu P13977 数列分块入门 2
  • AI核心知识50——大语言模型之Scaling Laws(简洁且通俗易懂版)
  • MySQL 深分页查询优化实践与经验总结
  • P2014 [CTSC1997] 选课
  • 彻底讲清 MySQL InnoDB 锁机制:从 Record 到 Next-Key 的全景理解
  • 超越宣传:基于数据与案例的软件人才外包服务商价值评估指南
  • MCU的启动流程你了解么?
  • 电机多目标优化与灵敏度分析:探索电机性能提升之道
  • I2C通信最全面的讲解:从协议到硬件设计