适配器是使一种事物的行为符合另一事物行为的机制。为客户端提供它想要的接口。
默认的stack 和 queue都是基于deque容器实现的,而priority_queue则是在vector容器上实现的。在创建适配器时,通过将一个顺序容器制定为适配器的第二个类型实参,可覆盖其基础容器类型。
stack适配器所关联的容器可以是vector list deque中任意一种。
queue适配器则要求关联操作必须提供push_front操作,因此不能是vector
priority_queue适配器要求能够提供随机访问功能,可建立在vector deque上
1、栈适配器实现
int main(int argc,char **argv)
{
const stack<int>::size_type stackSize = 20; //给定栈的大小
stack<int> intStack;//定义一个空栈
stack<int>::size_type i = 0;
while(i != stackSize){ //往栈中添加值
intStack.push(i++);
}
while(!intStack.empty()){//如果栈不为空
cout<<intStack.top()<<endl; //输出栈顶的元素
intStack.pop(); //弹出栈顶元素
}
return 0;
}