stack 栈

1、特性

在一端插入元素,在同一端删除元素,具有先进后出的特性。 底层实现一般用 list 或 deque,封闭头部即可,数据先进后出,不支持随机访问。

2、适用情况

需要一个先进后出结构时

3、头文件

#include<stack>

4、复杂度

插入:push(),O(1) 删除:pop(),O(1) 查找(栈顶):top(),O(1)

5、定义及常用函数

//默认构造函数
   stack<int> first;//创建一个空的stack

 //复制构造函数,使用已有的stack创建新的stack
   stack<int, list<int> >   s1;
   stack<int, list<int> >   s2(s1);//利用 s1 ,创建一个以双向链表为底层容器的空堆栈对象 s2 

   //使用已创建的deque创建stack
   deque<int> mydeque (3,100);          // 包含3个元素deque
   stack<int> second (mydeque);         // 使用deque初始化stack

   //创建vector为底层的stack,和使用已有stack初始化新的stacck
   std::stack<int,std::vector<int> > third;  // 使用vector创建的空stack
   std::stack<int,std::vector<int> > fourth (myvector);
size( ) :返回栈中元素个数
top( ) :返回栈顶的元素
pop( ) :从栈中取出并删除元素
push(e) :向栈中添加元素e
empty( ) :栈为空时返回true