zoukankan      html  css  js  c++  java
  • 【C++ STL】Stack

    1、定义

      class stack<> 实作出一个stack(也成为LIFO,后进先出),你可以使用push()将任意数量的元素置入stack中,也可以使用pop()将元素依次插入次序反序从容器移除(即后进先出)。

      在<stack>中,class stack定义如下:

    namespace std {
           template <class T,
                     class Container = deque<T> >
           class stack;
       }

      第一个template参数代表元素型别。带有默认值的第二个template参赛用来定义stack内部存放元素的实际容器,缺省采用的是deque。之所以采用deque是因为deque移除元素会释放内存,并且不用重新分配内存时复制所有元素。

      例如定义一个元素型别为整数的stack:

    std::stack<int> st;     // integer stack

      实际上,stack只是将各项操作转化为内部容器的各项调用,可以使用任何序列式容器来支持stack,只要它支持back(),push_back(),pop_back()等操作。

      例如使用vector来容纳元素:

    std::stack<int,std::vector<int> > st;     // integer stack that uses a vector

    2、核心接口

    stack就三个接口函数,push(),top(),pop()。

    • push()会将一个元素放入stack中。
    • top()会返回stack中的栈顶元素,返回的是reference,可以就地修改值。
    • pop()移除栈顶元素,无返回值。
    • size()返回stack长度。
    • empty()返回stack是否为空。
  • 相关阅读:
    HTML&CSS学习总结(一)
    PHP学习总结(一)
    二、python基础1 基本语法、流程控制
    MySQL练习题
    python自动化学习目录大全
    简单练习:Python三级菜单优化
    一、python语言简介
    网络编程与并发—批量主机管理开发
    windows安装nginx并存放静态资源
    集成xxl-job分布式任务调度平台
  • 原文地址:https://www.cnblogs.com/ChinaHook/p/6985544.html
Copyright © 2011-2022 走看看