STL——stack

目录

stack

stack都有哪些接口 

模拟实现一个stack


stack

        1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。
        2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。
        3. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:
empty:判空操作
back:获取尾部元素操作

push_back:尾部插入元素操作
pop_back:尾部删除元素操作
        4. 标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器,默认情况下使用deque

        注明:

        stack是一种容器适配器,什么是容器适配器,容器适配器是一种设计模式,设计模式约有二十多种。字面意思就是为了某一行为,将容器进行适配,也就是封装,形成新的“器”。类似生活中的,电脑接口扩展坞,同一插座适配不同功率的电源。

stack都有哪些接口 

模拟实现一个stack


namespace ljy
{template <class T,class Container = deque<T>>class stack{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_back();}size_t size()const{return _con.size();}bool empty()const{return _con.empty();}T& top(){return _con.back();}private:Container _con;};
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/509580.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

布隆过滤器到底是什么东西?它有什么用

一、问题解析 昨天&#xff0c;一个工作了 6 年的粉丝私聊我&#xff0c;说最近面试被问到布隆过滤器没回答出来。然后在网上找了一堆资料也没有说清楚&#xff0c;想让我帮他讲解一下&#xff0c;今天正好有空&#xff0c;给大家分享一下布隆过滤器。 在解释布隆过滤器之前&a…

一种vue函数式组件的实现思路

本文首发于&#xff1a;https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 写在前面 一般情况下我们在使用框架时&#xff08;react、vue、angular&#xff09;都是创建一个实例&#xff0c;然后所有的页面都写在#app一个容器内。这样可能会导致一些本改高复用&#…

【C++入门】C++关键字 | 命名空间 | C++的输入输出

目录 0.C与C 1.C的关键字 2.命名空间 2.1域 2.2C中命名冲突问题 2.3命名空间定义 2.4命名空间使用 2.5命令空间的展开&头文件的展开 3.C的输入&输出 3.1cout&cin 3.1<<流插入运算符 3.2>>流提取运算符 0.C与C C是在C的基础之上&#xff…

设计模式(十四)中介者模式

请直接看原文: 原文链接:设计模式&#xff08;十四&#xff09;中介者模式_设计模式之中介模式-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- 前言 写了很多篇设计模式的…

【JavaEE进阶】 Linux常用命令

文章目录 &#x1f343;前言&#x1f334;ls 与 pwd&#x1f6a9;ls&#x1f6a9;pwd &#x1f38d;cd&#x1f6a9;认识Linux目录结构 &#x1f340;touch与cat&#x1f6a9;touch&#x1f6a9;cat &#x1f332;mkdir与rm&#x1f6a9;mkdir&#x1f6a9;rm &#x1f384;cp与…

企业必备监管工具:让管理更简单,效率倍增!

微信作为当前广泛使用的沟通工具&#xff0c;成为企业监管的重要对象。因此&#xff0c;使用微信管理系统成为企业必备的监管工具之一。下面就给大家分享微信管理系统的监管功能&#xff0c;让大家的管理更简单、更高效&#xff01; 1、敏感词监控 设置完成后&#xff0c;一旦…

卡莱尔:现在的马刺显然跟之前不一样了 他们近期还击败过雷霆

直播吧指定地址&#xff1a;www.wfzkbzj.com 3月4日讯 步行者今日105-117不敌马刺&#xff0c;赛后&#xff0c;步行者主帅卡莱尔接受媒体采访。 谈及马刺&#xff0c;卡莱尔说道&#xff1a;“现在的马刺显然跟我们之前交手的马刺已经不一样了&#xff0c;他们近期还击败过雷…

【Python笔记-设计模式】状态模式

一、说明 状态模式是一种行为设计模式&#xff0c;用于解决对象在不同状态下具有不同行为 (一) 解决问题 在对象行为根据对象状态而改变时&#xff0c;规避使用大量的条件语句来判断对象的状态&#xff0c;提高系统可维护性 (二) 使用场景 当对象的行为取决于其状态&#…

栈与队列力扣经典例题20. 有效的括号1047. 删除字符串中的所有相邻重复项150. 逆波兰表达式求值

对于栈与队列&#xff0c;我们首先要搞清楚&#xff0c;栈是先入后出&#xff0c;而队列是先入先出&#xff0c;利用这个特性&#xff0c;我们来判断题目用什么STL容器&#xff0c;便于我们去解决问题 20. 有效的括号 这道题&#xff0c;首先我们要知道哪些情况&#xff0c;是会…

需求评审会常见的5大核心问题

需求评审会是项目管理过程中的一个重要环节&#xff0c;其核心问题的顺利讨论和评审&#xff0c;对项目来说非常重要。其有助于项目成员对需求理解达成共识&#xff0c;明确需求的内容、目标和预期结果&#xff0c;尽早发现需求不合理之处&#xff0c;从而能够及时调整和完善&a…

2024六大创业营销趋势,普通人创业新风向!

2024年越来越多的人选择创业&#xff0c;从龙年春节前后&#xff0c;创投圈就开始探讨关于2024的创业新风向&#xff0c;从各个热点&#xff0c;各大品牌&#xff0c;春晚等等方面洞察2024创业趋势&#xff0c;以下总结的6大创业营销趋势&#xff0c;跟着大品牌押宝&#xff0c…

2024034期传足14场胜负前瞻

2024034期售止时间为3月4日&#xff08;周一&#xff09;22点00分&#xff0c;敬请留意&#xff1a; 图片 本期深盘多&#xff0c;1.5以下赔率3场&#xff0c;1.5-2.0赔率5场&#xff0c;其他场次是平半盘、平盘。本期14场整体难度中等。以下为基础盘前瞻&#xff0c;大家可根据…