STL学习----入门(1)[stack]

#include<stack>:

   
   
  1. // <stack>
  2. template < class T, class Container = deque<T> > class stack;

栈(Stack)是一个容器适配器(Container adaptor)类型,被特别设计用来运行于LIFO(Last-in first-out)场景,在该场景中,只能从容器末尾添加(Insert)或提取(Extract)元素。

  • T

    容器所包含的元素的类型。

    在类模板内部,使用其别名为 value_type 的成员类型。

    Container

    底层的用于存储元素的容器的类型。

  • stack 通常被实现为容器适配器,即使用一个特定容器类的封装对象作为它的底层容器。stack 提供了一系列成员函数用于操作它的元素,只能从容器“后面” 压进 (Push)元素或从容器“后面” 提取 (Pop)元素。容器中的“后面”位置也被称为“栈顶”。

    用来实现栈的底层容器必须满足顺序容器的所有必要条件。同时,它还必须提供以下语义的成员函数:

    • back()
    • push_back()​
    • pop_back()

    满足上述条件的标准容器有 std::vectorstd::dequestd::list,如果未特别指定 stack 的底层容器,标准容器 std::deque 将被使用。

    Any sequence container supporting operations back(), push_back() and pop_back() can be used to instantiate stack. In particular, vector, list  and deque can be used.

  • 成员类型定义
    value_type第一个模板参数 T
    container_type第二个模板参数 Container
    size_typeContainer::size_type
    referenceContainer::reference
    const_referenceContainer::const_reference
  • (constructor)创建 stack
    (destructor)释放 stack
    operator=赋值操作

    Element access:

    top访问顶部元素

    Capacity:

    empty判断是否为空
    size返回有效元素个数

    Modifiers:

    push在容器顶部插入元素
    pop移除容器顶部的元素
    emplace C++11在容器顶部放置插入元素
    swap交换容器的内容
  • operator==、operator!=、operator<、operator<=、operator>、operator>= 

    关系操作符
    std::swap交换两个栈的内容



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值