STL适配器之stack
来源:互联网 发布:java服务器是什么 编辑:程序博客网 时间:2024/05/23 16:55
1、基本概念
stack是一种先进后出的数据结构,要求数据只能从顶端插入、删除和访问。stack是在底层容器的基础上实现的,内部都是调用容器的接口,但对外却提供约束性的新接口,因而严格来说stack并不算是一个容器,而是一种容器适配器。
2、迭代器
stack只允许在顶端进行数据的操作,因而并不提供遍历的功能,也不提供迭代器。
3、底层容器
stack的底层容器使用的是模板参数,内部会使用empty、size、back、push_back、pop_back这些容器的接口,只要是提供这些接口的容器都可作为stack的底层容器。
stack默认使用deque作为底层容器,下面是测试代码:
stack<int> a;a.push(1);a.push(2);cout<<"size:"<<a.size()<<endl; //size:2cout<<a.top()<<endl; //2cout<<"size:"<<a.size()<<endl; //size:2a.pop();cout<<"size:"<<a.size()<<endl; //size:1cout<<a.top()<<endl; //1
这里可以看到stack的使用相当简洁明了,下面我们使用list作为底层容器测试一下:
stack<int, list<int>> a;a.push(1);a.push(2);cout<<"size:"<<a.size()<<endl; //size:2cout<<a.top()<<endl; //2cout<<"size:"<<a.size()<<endl; //size:2a.pop();cout<<"size:"<<a.size()<<endl; //size:1cout<<a.top()<<endl; //1
可以看到,使用不同的底层容器测试结果没有任何差别。
4、空间释放
stack并没有提供clear的接口,想要释放空间,只能通过pop接口自行释放。
0 0
- STL适配器之stack
- STL学习之stack适配器
- STL学习之stack适配器
- STL之容器适配器:stack,queue , priority_queue
- STL容器适配器:stack
- STL-适配器-Stack
- 【STL】栈适配器stack
- stl 顺序容器适配器之stack, priority_queue, queue用法
- STL之容器适配器stack的实现框架
- stl之适配器容器——stack, queue, priority_queue
- STL容器适配器-栈 stack
- 容器适配器之stack
- 【双端队列】【栈】【队列】STL之deque、stack、queue、容器适配器
- C++之STL(十一):容器适配器(stack、 queue 、priority_queue)源码浅析与使用示例
- STL容器之stack
- STL容器之stack
- C++ STL 之stack
- STL之stack
- lintcode(76)最长上升子序列
- Spark性能优化指南——高级篇
- 【jzoj5042】【最小直径】【树形动态规划】【贪心/结论】
- 1042. 字符统计(20)
- C#里partial关键字的作用
- STL适配器之stack
- Spark性能优化指南——基础篇
- 读书笔记-分层架构
- 蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】
- 动态分配二维数组
- 简单的ReactNative工程
- JAVA(5)——1--100被3整除的数
- 常用的三大dll模块
- 1043. 输出PATest(20)