STL_stack容器

一、stack简介

stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为。

  • 有元素推入栈的操作称为:push
  • 将元素推出stack的操作称为pop

stack是简单地装饰deque容器而成为另外的一种容器。

include<stack>

二、stack对象的默认构造

stack采用模板类实现, stack对象的默认构造形式: stack stkT;

stack <int> stkInt;      //一个存放int的stack容器。
stack <float> stkFloat;   //一个存放float的stack容器。
stack <string> stkString;   //一个存放string的stack容器。
//尖括号内还可以设置指针类型或自定义类型。

三、stack的push()与pop()方法

stack.push(elem); //往栈头添加元素

stack.pop(); //从栈头移除第一个元素

stack<int> stkInt;  

stkInt.push(1);
stkInt.push(3);
stkInt.pop();
//此时stkInt存放的元素是1

四、stack对象的拷贝构造与赋值

stack(const stack &stk); //拷贝构造函数

stack& operator=(const stack &stk); //重载等号操作符

stack<int> stkIntA;
stkIntA.push(9);
stack<int> stkIntB(stkIntA);       //拷贝构造
stack<int> stkIntC;
stkIntC = stkIntA;               //赋值

五、stack的数据存取

stack.top(); //返回最后一个压入栈元素,即栈顶元素

stack<int> stkIntA;
stkIntA.push(1);
stkIntA.push(7);
stkIntA.push(9);
int iTop = stkIntA.top();      //9

六、stack的大小

stack.empty(); //判断堆栈是否为空

stack.size(); //返回堆栈的大小

stack<int> stkIntA;
stkIntA.push(1);
stkIntA.push(3);
if (!stkIntA.empty()){
int iSize = stkIntA.size();      //2
   }
(0)

相关推荐

  • 每日一题 剑指offer(用两个栈实现队列)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • STL_queue容器

    一.queue简介 queue所有元素的进出都必须符合"先进先出"的条件,只有queue的顶端元素,才有机会被外界取用.queue不提供遍历功能,也不提供迭代器. queue是简单 ...

  • STL_list容器

    一.List简介 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每 ...

  • ​LeetCode刷题实战225:用队列实现栈

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • STL_vector容器

    一.Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法). vector尾部添加或移除元素非常 ...

  • 欧标容器板20MnMoNi4-5性能,20MnMoNi4-5回火温度

    1.20MnMoNi4-5是欧标压力容器用钢板2.20MnMoNi4-5交货状态:淬火+回火,回火温度:610-690℃3.20MnMoNi4-5执行标准:EN10028-2-20094.20MnMo ...

  • 中低温压力容器板07Cr2AlMoR交货状态

    1.07Cr2AlMoR属于中低温压力容器钢板2.07Cr2AlMoR交货状态:正火+回火或淬火+回火3.07Cr2AlMoR执行标准:GB/T713-20144.07Cr2AlMoR化学成分牌号化学 ...

  • 《C++ Primer》笔记 第9章 顺序容器

    顺序容器类型 类型 解释 vector 可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢 deque 双端队列.支持快速随机访问.在头尾位置插入.删除速度很快 list 双向链表 ...

  • 中低温焊接容器板SA612M性能分析

    SA612M是一种中低温焊接压力容器用镇静C-Mn-Si钢板 其主要技术条件如下 一.适用范围 本技术协议适用于最大厚度25mm的中低温焊接压力容器用镇静C-Mn-Si钢板的生产及检验. 二.SA61 ...

  • Azure上的Java:监视和扩展容器化的应用程序

    了解应用程序的运行状况至关重要.如果您的服务不可用,则可能会降低生产力并延误其他流程.您可以通过多种方式跟踪应用程序的可用性.AzureMonitor提供了一种收集和分析有关应用程序性能和事件的信息的 ...

  • 焊接(多层)压力容器用淬火加回火碳锰硅钢板SA724GrA性能

    焊接(多层)压力容器用淬火加回火碳锰硅钢板1. 适用范围SA724GrA  SA724GrB  SA724GrC生产C级钢时可添加硼.钢板都应经淬火加回火处理,主要用于焊制多层压力容器.SA724Gr ...

  • 创建用于AI和机器学习的Docker容器

    容器技术(例如Docker)极大地简化了依赖性管理和软件的可移植性.在本系列文章中,我们将探讨Docker在机器学习(ML)场景中的用法. 本系列假定您熟悉ML,一般的容器化,尤其是Docker.欢迎 ...

  • 在启用GPU的Docker容器中运行AI模型

    容器技术(例如Docker)极大地简化了依赖性管理和软件的可移植性.在本系列文章中,我们将探讨Docker在机器学习(ML)场景中的用法. 本系列假定您熟悉ML,一般的容器化,尤其是Docker.欢迎 ...

  • 欧标容器板15NiCuMoNb5-6-4性能

    一.15NiCuMoNb5-6-4简介15NiCuMoNb5-6-4钢板属于欧洲压力容器用钢板,用于制造反应器.换热器.分离器.球罐.油气罐.液化气罐.核能反应堆压力壳.液化石油汽瓶.水轮机蜗壳等.二 ...