简介
在头文件<stack> 中定义
namespace std
{
template <typename T, typename Container = deque<T>> class stack;
}
stack就是数据结构里堆栈的实现,后进先出。定义中的第二个参数用来定义stack内部存放元素的实际容器,可以是任何序列式容器,默认容器为deque,是因为其删除元素会自动释放内存,还有不必在重新分配时复制所有元素。
实际上stack只是很单纯地把各项操作转化为内部容器的对应调用。
核心接口
push() //将一个元素置入stack内
top()//返回stack内的下一个元素
pop() //从stack中移除元素
需要注意的是,pop()移除下一个元素,但并不将它返回,而top()返回一个元素的值,但不删除它。
栗子
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> st;
//依次入栈1、2、3
st.push(1);
st.push(2);
st.push(3);
//显示栈顶元素,并弹出栈顶元素
cout << st.top() << ends;
st.pop();
cout << st.top() << ends;
st.pop();
//修改栈顶元素
st.top() = 0;
//入栈两个新元素4、5
st.push(4);
st.push(5);
//弹出栈顶元素
st.pop();
//弹出并显示剩余元素
while (!st.empty())
{
cout << st.top() << ends;
st.pop();
}
cout << endl;
return 0;
}
输出
3 2 4 0