一、stack介绍和使用

一、stack介绍和使用 1.stack文档介绍
(1)stack是一种容器适配器 , 专门用于具有后进先出操作的上下文环境中 , 其只能从容器的一端进行元素的插入与删除 , 以及提取操作 。
(2)stack是作为容器适配器实现的 , 容器适配器是对特定类封装作为其底层的容器 , 并提供一组特定的成员函数来访问其元素 。将特定类作为其底层 , 元素在特定容器的尾部(即栈顶)被压入和弹出 。
(3)stack的底层容器可以是任何标准的容器类模板 , 或一些其他特定的容器类 , 这些容器类应该支持以下操作:

一、stack介绍和使用

文章插图
①empty:判空操作;
②back:获取尾部元素操作;
③:尾部插入元素操作;
④:尾部删除元素操作 。
一、stack介绍和使用

文章插图
(4)标准容器、deque、list均符合这些需求 , 如果没有为stack指定特定的底层容器 , 默认情况下使用deque 。
2.stack的使用
二、模拟实现stack
【一、stack介绍和使用】#include #include #include using namespace std;namespace MyStack {//这里模拟实现 , 默认底层容器采用的vectortemplateclass stack {public:stack():_con(){}void push(const T& val) {_con.push_back(val);}void pop() {_con.pop_back();}T& top() {return _con.back();}const T& top() const {return _con.back();}size_t size() const {return _con.size();}bool empty() {return _con.empty();}private:Container _con;//底层容器};}