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