# 栈stack
#include<stack>
通过二次封装双端队列(depue)容器,实现先进后出的栈数据结构。
# 1. 常用方法
作用 | 用法 | 实例 |
---|---|---|
构造 | stack<类型> stk | stack<int> stk; |
进栈 | .push(元素) | stk.push(1); |
出栈 | .pop() | stk.pop(); |
取栈顶 | .top() | int a = stk.top(); |
查看大小/清空/判空 | 与vector相同 | 略 |
# 2. 适用情形
如果不卡常的话,就直接用它而不需要手写栈了。
另外,vector也可以当栈用,vector的.back()
取尾部元素,就相当于取栈顶,.push_back()
相当于进栈,.pop_back()
相当于出栈,但栈占的空间相对于较小,竞赛有时会卡内存
# 3. 注意事项
不可以访问内部元素!下面都是错误用法:
for(int i = 0; i < stk.size(); i++)
cout << stk[i];
for(auto ele : stk)
cout << ele;
1
2
3
4
2
3
4