stack容器
stack是堆栈容器,是一种“先进后出”的容器。stack是基于deque容器而实现的容器。
使用
#include<stack>//头文件
stack对象的默认构造
stack采用模板类实现, stack对象的默认构造形式:
stack stkT;
stack<int> stkint;
stack<float> stkfloat;
stack<string> stkstr;
也可以设置指针类型或者自定义的结构体类型。
出栈和入栈操作
stkint.push(1);//入栈整型1
stkint.pop();//出栈
stkInt.push(1);
stkInt.push(2);
stkInt.pop();
stkInt.push(3);
//此时stkInt存放的元素是1, 3
stack数据存取
stkint.top();//返回最后一个入栈的元素
stack的大小
stkint.empty();//判断堆栈是否为空,若为空返回true
stack.size();//返回堆栈的大小
C++中stack
pop(), 返回void,
top(),返回栈顶的引用。
所以想要提取栈顶元素,直接用s.top()
stack没有现成的清空函数(clear),一半采用两种方法进行清空:
1.逐一弹出栈顶元素
stack<int> intstk;
while(!intstk.empty()) intstk.pop();
2.和空栈交换
swap相当于交换了intstk和一个空的临时堆栈的内容,然后临时堆栈再结束生命周期,但由于操作的是堆空间,其实还是一个一个释放空间。该方法的速度要比1快一些。
stack<int> intstk;
stack<int>().swap(intstk);
例题
- 有效的括号(力扣)