C++ 容器适配器
除了顺序容器外,标准库还定义了三个顺序容器适配器,stack、queue和priority_queue。适配器是标准库中的一个通用概念。容器、迭代器和函数都有适配器。本质上一个适配器就是一种机制,使某种事物的行为看起来像另外一种事物。

定义一个适配器
每个适配器有两个构造函数。
默认情况下stack和queue是基于deque实现的,priority_queue是再vector上实现的。
所有适配器都要求容器具有添加和删除元素的能力,所以适配器不能构造再array之上。适配器要求具有访问尾元素的能力,所以不能用forward_list。
stack只要求push_back、pop_back和back操作,因此可以使用除array和forward_list之外的容器。
queue要求push_back、front和push_front,所以他不能基于vector构造。
priority_queue除了front、push_back和pop_back之外还要求随机访问,所以不能基于list。
栈适配器
stack类定义在stack头文件中。

intStack.push语句试图在底层的deque对象上调用push_back,虽然stack基于deque实现,但是我们不能直接使用deque的操作,所以stack必须用自己的操作——push
队列适配器
queue和priority_queue定义在queue头文件中。


默认情况下标准库在元素类型上使用<运算符来确定相对优先级,我们将在后面学习如何重载这个默认设置。