一、stack的介绍
1.stack是一个容器适配器,它的名字叫做栈
专门用在后进先出的上下文环境中的,它的删除与插入操作只能从容器的一端进行。形象一点,就好像一个容器里放东西,先放进去的就在底部,要想拿出来,就得先把上面(后面放的)先拿出来。和排队是反着干,后面来的,反而先得到解决。
注意:虽然他和内存中的栈帧都是后进先出,但他们是两个完全不同的概念。
栈帧是内存中的一个区域,二stack是一种数据结构。
stack的样子like this
它需要包含头文件#include<stack>
二、stack的使用
1.stack的初始化和定义
先定义一个容器:我们可以选择一些数据存进去即可。
//<>内是想让stack里存入的数据类型
stack<int>s1; //一个储存数据类型为int的stack容器s1
stack<double>s2; //一个储存数据类型为double的stack容器s2
stack<string>s3; //一个储存数据类型为string的stack容器s3
初始化:
2.stack的操作
stack的提供的函数有:
empty()//判断stack是否为空
size();//stack的大小
top();//栈顶元素
push();//入栈
pop();//出栈
下面展示了上面五个操作,同时也是stack的遍历方式:首先判断stack里有没有元素,我们只需每次取出栈顶元素,然后让他出栈,依次打印栈里的内容。
stack的基本操作就是这些,但是要在实际应用中才能感受到stack的强大。
三、stack的底层实现
1.stack叫做适配器,是因为他的底层是调用了deque的容器,deque就是类似vector这样的容器。这个只需知道了解就行了。