您的位置:首页 > 编程语言 > C语言/C++

STL学习笔记— —特殊容器stack

2016-05-04 16:00 295 查看

简介

在头文件<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stl c++