STL-stack容器适配器

avatar
作者
猴君
阅读量:0

目录

一、容器适配器

二、使用

三、模拟实现


一、容器适配器

适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口

STL中,stack是由deque容器适配而来的

二、使用

具体解释详见官方文档:stack - C++ Reference (cplusplus.com)

stack就是数据结构中的栈:数据结构之栈_栈(stack):适用于需要先进后出(lifo)的场景,如函数调用、表达式求值和括号匹配等-CSDN博客

构造函数:

  • stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式
  • stack(const stack &stk); //拷贝构造函数

赋值操作:

  • stack& operator=(const stack &stk); //重载等号操作符

数据存取:

  • push(); //向栈顶添加元素
  • pop(); //从栈顶移除第一个元素
  • top(); //返回栈顶元素

大小操作:

  • empty(); //判断堆栈是否为空
  • size(); //返回栈的大小

三、模拟实现

模拟实现采用适配vector的方式实现

类与对象的相关知识可知,自定义类型的对象会默认调用自定义类型的构造函数,vector容器已经有构造函数,所以stack没有必要写构造函数

namespace paradiso { 	template<typename T,class Container=vector<T>> 	class stack 	{ 	public: 		void push(const T& x) 		{ 			_con.push_back(x); 		} 		void pop() 		{ 			_con.pop_back(); 		} 		const T& top() const 		{ 			return _con.back(); 		} 		size_t size() const 		{ 			return _con.size(); 		} 		bool empty() const 		{ 			return _con.empty(); 		} 	private: 		Container _con; 	};  }

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!