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
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性