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是否为空。
  • 相关阅读:
    【C++日常】C++动态命名变量名
    两个整数相除
    Jsp页面跳转 接收时的乱码问题
    Reverse a singly linked list
    Java处理excel文件
    Navicat for mysql 破解
    EasyUi 分页 和 表格数据加载
    Spring 框架下Controller 返回结果在EasyUI显示
    svn ubuntu command(转载)
    Shiro Security
  • 原文地址:https://www.cnblogs.com/ChinaHook/p/6985544.html
Copyright © 2011-2022 走看看