栈(stack)是支持push和pop两种操作的数据结构。
push是在栈的顶端放入一组数据的操作。
而pop是在栈的顶端取出一组数据的操作。
总之就是 后进先出
在c++的标准库中stack::pop完成的仅是移除最顶端的数据。
如果要访问最顶端的数据则需要stack::top
函数调用的过程是通过栈实现的。
使用stack的例子如下:
#include<stack>
#include<cstdio>
using namespace std;
int main() {
stack <int> s;//声明存储int类型数据的栈
s.push(1);//{}->{1}
s.push(2); //{1}->{1,2}
s.push(3); //{1,2}->{1,2,3}
printf("%d\n", s.top());//此时栈顶为3
s.pop();//栈顶移除{1,2,3}->{1,2}
printf("%d\n", s.top());//此时栈顶为2
s.pop();//栈顶移除{1,2}->{1}
printf("%d\n", s.top());//此时栈顶为1
s.pop();//栈顶移除{1}->{}
return 0;
}