STL序列式容器之堆栈——stack
2016-07-11 22:56
239 查看
stack其实是一个配接器(adapter),因为SGI的STL缺省情况下是以deque作为底层结构的,即修改某物接口,形成另一种数据结构。
到目前为止,我们总结一下学过的容器的压入和弹出操作。
vector:只能在尾端操作,push_back, pop_back;
list:由于stl中的list是一个双向环状链表,可以在头部和尾部进入操作,push_front,push_back,pop_front,pop_back。
deque:由于是双端队列,支持双向操作,和list相同。
而这一节我们要学习的是堆栈,支持后入先出的规则,只能在栈顶操作,所以压入和弹出元素为push和pop,注意并没有back。
stack的实现很简单,只需要将底层结构进行约束就可以了。
由于stack后进先出的规则,所以并无走访功能,且stack是没有迭代器的。
1、SGI中STL默认情况下是以双端队列为底层结构的,我们知道list也是双向开口的,因此也可以以list为底层结构,具体如下;
#include<stack>
stack<int, list<int> > mystack;
这样的底层结构就是双向链表list。
到目前为止,我们总结一下学过的容器的压入和弹出操作。
vector:只能在尾端操作,push_back, pop_back;
list:由于stl中的list是一个双向环状链表,可以在头部和尾部进入操作,push_front,push_back,pop_front,pop_back。
deque:由于是双端队列,支持双向操作,和list相同。
而这一节我们要学习的是堆栈,支持后入先出的规则,只能在栈顶操作,所以压入和弹出元素为push和pop,注意并没有back。
stack的实现很简单,只需要将底层结构进行约束就可以了。
由于stack后进先出的规则,所以并无走访功能,且stack是没有迭代器的。
1、SGI中STL默认情况下是以双端队列为底层结构的,我们知道list也是双向开口的,因此也可以以list为底层结构,具体如下;
#include<stack>
stack<int, list<int> > mystack;
这样的底层结构就是双向链表list。
相关文章推荐
- 重载=时返回对象引用与非引用的区别
- STL空间配置器
- STL源码解析——traits(特性)编程技巧
- STL序列式容器之vector
- STL序列式容器之list(双向链表)
- STL序列式容器之双端队列——deque
- 【转】java基础:Java中数据存储方式
- STL关联式容器之散列表——hashtable
- STL关联式容器之映射表——map
- STL关联式容器之集合set
- STL关联式容器之红黑树
- STL关联式容器之总览
- STL序列式容器之优先队列——priority_queue
- STL序列式容器之heap(注heap并不归属于stl组件)
- STL序列式容器之队列——queue
- HDU2057 A + B Again
- 7月11日实习日志
- 自定义动画实现splash页面3d旋转切换主页面
- 腾讯云安装tomcat环境
- 算法总结:判断一个数是否为素数