您的位置:首页 > 其它

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