news 2026/5/23 13:38:46

STL常用函数——stack

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STL常用函数——stack

栈stack

#include<stack>

定义

通过二次封装双端队列(deque)容器,实现先进后出的栈数据结构

仅维护栈顶(top),支持入栈(push),查询栈顶(top),查询大小(size)操作。常用于“单调栈”,“括号匹配”,“dfs”,“Tarjan求强连通分量”,“波兰表达式(计算器)”等算法和数据结构中。

常用方法

作用用法示例

构造

stack<类型> stkstack<int> stk;
进栈.push(元素)stk.push(1)
出栈.pop( )stk.pop( )
取栈顶.top( )int a=stk.top()
大小.size( )int a=stk.size( )
判空.empty( )stk.empty( )

初始化

stack<int> stk;//创建一个空栈,栈不允许列表初始化或填充相同的元素 //但是可以从已有的栈进行拷贝构造 stack<int> stk2(stk); stack(int) stk3=stk2;

入栈

stk.push(10);//stk=[10(top)] stk.push(20);//stk=[10,20(top)] stk.push(50);//stk=[10,20,50(top)] cout<<stk.top()<<endl;//50 stk.pop();//stk=[10,20(top)] cout<<stk.top()<<endl;//20

栈是一种线性结构,可以把它看做一种“弱化版”的数组,他只能在栈顶进行数据的操作,而栈内部的元素都是不可能被访问的

取出栈顶元素

在c++中,top( )函数仅仅是取出栈顶元素,不会将栈顶元素pop()掉

cout<<stack.top()<<'\n';//50,stk=[10,20,50(top)]

出栈

//弹出栈顶元素,注意判断非空 if(stk.size()) stk.pop();//stk=[10,20(top)] cout<<stk.pop()<<'\n';//20,stk=[10,20(top)]

获取栈大小(元素个数),判空

cout<<stk.size()<<'\n'; if(stk.empty())……//栈为空

清空栈

while(stk.size()) stk.pop();

在stack中不允许遍历,但是如果我们手写栈(或者直接用vector),即可实现

手写栈

用一个top变量表示栈顶下标即可,以下标1作为栈底

int stk[N],top=0; //入栈 stk[++top]=x; //出栈 top--; //取出栈顶元素 cout<<top<<'\n' //获取大小 cout<<top<<'\n' //判断是否为空 if(top)……//栈非空 //遍历栈 for(int i=1;i<=top;i++)…… //甚至可以在单调栈上进行二分
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 13:07:20

html-to-docx架构解析:构建高性能HTML到Word文档转换引擎

html-to-docx架构解析&#xff1a;构建高性能HTML到Word文档转换引擎 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx 在现代企业级应用开发中&#xff0c;HTML到Word文档的格式转换已成为内容管理系统…

作者头像 李华
网站建设 2026/5/23 13:37:39

微信聊天记录永久保存:WeChatMsg让数字记忆不再消逝

微信聊天记录永久保存&#xff1a;WeChatMsg让数字记忆不再消逝 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatM…

作者头像 李华
网站建设 2026/4/1 14:27:11

intv_ai_mk11惊艳效果:同一问题在不同温度值下的逻辑性与创造性对比

intv_ai_mk11惊艳效果&#xff1a;同一问题在不同温度值下的逻辑性与创造性对比 1. 模型效果展示概述 intv_ai_mk11作为一款基于Llama架构的文本生成模型&#xff0c;其最令人惊艳的特点在于能够通过调整温度参数&#xff0c;灵活控制生成文本的逻辑严谨性与创意丰富度。本文…

作者头像 李华
网站建设 2026/4/1 14:27:08

目标检测新思路:Phi-4-mini-reasoning辅助YOLOv5模型训练与调优

目标检测新思路&#xff1a;Phi-4-mini-reasoning辅助YOLOv5模型训练与调优 1. 引言&#xff1a;当大语言模型遇见计算机视觉 在目标检测领域&#xff0c;YOLOv5凭借其出色的速度和精度平衡&#xff0c;已成为工业界和学术界的首选框架之一。然而&#xff0c;模型训练过程中的…

作者头像 李华
网站建设 2026/4/1 14:27:08

Logitech设备Linux终极管理指南:用Solaar高效解决无线连接难题

Logitech设备Linux终极管理指南&#xff1a;用Solaar高效解决无线连接难题 【免费下载链接】Solaar Linux device manager for Logitech devices 项目地址: https://gitcode.com/gh_mirrors/so/Solaar 还在为Logitech无线设备在Linux系统中的连接不稳定、功能受限而烦恼…

作者头像 李华
网站建设 2026/4/3 2:49:14

加州行政命令为AI公司套上安全隐私紧箍咒

【加州行政命令&#xff1a;AI公司须制定安全隐私准则】周一&#xff0c;加利福尼亚州民主党州长加文纽瑟姆签署行政命令&#xff0c;要求与该州开展业务的AI公司制定安全和隐私准则。该命令旨在确保与加州签订合同的公司遵守严格标准&#xff0c;制定负责任的政策防止技术被滥…

作者头像 李华