一、适配器
适配器是一种设计模式,能够将一个类的接口转换成客户希望的另外一个接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。比如对于笔记本来说,电源额定电压是220V,而美国电压是110V,为了能在美国使用,必须要用变压器转换电压以匹配美国电压,那么这个变压器就是个适配器。
容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能。它可以通过适配容器现有的接口来提供不同的功能,所以叫作适配器类。
虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为容器适配器,这是因为stack和队列只是对其他容器的接口进行了包装,STL中stack和queue默认使用deque。
二、栈
1.栈的性质
(1)stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。
(2) stack是作为容器适配器被实现的,容器适配器即是对特定类封装将其作为底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层,元素从特定容器的尾部(即栈顶)被压入和弹出。
(3)stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:
empty:判空操作
back:获取尾部元素操作