【STL】顺序容器 — stack
2014-05-14 15:53
176 查看
具有修改某物接口,形成另一种风貌之性质者,称为适配器。stack便是以deque为底层容器,适当封闭一些功能而形成一种具有“先进后出”特性,并不允许遍历行为的容器适配器。因为不能遍历容器,故stack没有迭代器。
源码如下:
从代码可以看出,stack的所有操作都是转调用了底层容器deque的相应操作,所以stack的定义非常简单,这里就不做多的分析了。
stack默认使用deque作为底层容器,但定义stack时可以自己定义底层容器,如:
stack<int, list<int> > istack;
由于list也具有empty、size、back、push_back、pop_back等功能,所以用list作为底层容器是合法的。
参考:
《STL源码剖析》 P167.
源码如下:
template <class T, class Sequence = deque<T> > class stack { .... protected: Sequence c; // 底层容器 public: bool empty() const { return c.empty(); } size_type size() const { return c.size(); } reference top() { return c.back(); } const_reference top() const { return c.back(); } void push(const value_type& x) { c.push_back(x); } // deque末端进 void pop() { c.pop_back(); } // deque末端出 };
从代码可以看出,stack的所有操作都是转调用了底层容器deque的相应操作,所以stack的定义非常简单,这里就不做多的分析了。
stack默认使用deque作为底层容器,但定义stack时可以自己定义底层容器,如:
stack<int, list<int> > istack;
由于list也具有empty、size、back、push_back、pop_back等功能,所以用list作为底层容器是合法的。
参考:
《STL源码剖析》 P167.
相关文章推荐
- stl 顺序容器适配器之stack, priority_queue, queue用法
- stl 顺序容器vector(priority_queue),顺序容器List,顺序容器deque(queue, stack)详解
- stl 顺序容器适配器之stack, priority_queue, queue用法
- stl 顺序容器vector(priority_queue),顺序容器List,顺序容器deque(queue, stack)详解
- [STL基础]顺序容器
- STL之stack&queue容器(笔记)
- 我的Stack实现(用C++实现),模仿STL的Stack实现,但是不用容器类
- STL容器之stack
- 【STL容器学习笔记】-顺序容器
- STL1—顺序容器vector list deque的基本知识
- STL容器总结之stack和queue
- STL顺序容器篇--sring容器中的迭代器
- STL之顺序容器适配器(栈的数组实现代码)
- 【STL】序列式容器--stack和queue
- STL--容器适配器(queue、priority_queue、stack)
- stl之适配器容器——stack, queue, priority_queue
- 用STL输出顺序容器
- STL序列式容器之堆栈——stack
- STL 容器和迭代器连载3_顺序容器初始化
- STL 容器和迭代器连载8_访问顺序容器的元素