# include <iostream>
# include <stack>
# include <vector>
# include <list>
# include <deque>
using namespace std;
/*
栈(stack)
后进先出
自适应容器
操作:
empry-->是否为空 空返回true 不开返回false
size-->大小
pop-->出栈-->无返回值
top-->查看栈顶的数据-->返回栈顶元素
push-->把数据压入栈顶
*/
int main(){
//stack默认底层是用 deque存储的,下面的代码等价于 stack<int> a;
stack<int,deque<int>/*这个有个空格*/> a;
stack<int,vector<int> > b;//用vector(向量)来做堆栈
stack<int,list<int> > c;// 用list(链表)来做堆栈
stack<int> d;//等价于第一个
d.push(22);
d.push(10);
d.push(-1);
d.push(100);
//int x = d.pop(); error 删除栈顶元素,并没有返回值
d.pop();//100删除
int x = d.top();//查看栈顶元素并没有删除
cout<<x<<endl<<endl;
//查看栈里面的数据
cout<<d.size()<<endl<<endl;
//显示栈内的所有元素,并删除
//while(d.size()!=0){
while(d.empty()==false){
int y = d.top();
d.pop();
cout<<y<<" ";
}
cout<<endl;
return 0;
}
运行结果:
-1
3
-1 10 22