本次介绍的是STL的容器适配器,标准模板库包含了三种容器适配器:stack(栈);queue(队列)和优先级队列(priority_queue)。容器适配器是通过序列式容器实现的,即容器适配器中保存的是容器,容器再存放相关元素。
一.Stack容器
1 .简介:
stack是堆栈容器,是一种“先进后出”的容器。
stack是简单地装饰deque容器而成为另外的一种容器。
#include<stack>
2. stack的对象的默认构造:
stack采用模板类实现, stack对象的默认构造形式: stack <T>stkT;
stack <int> stkInt; //一个存放int的stack容器。
stack <float> stkFloat; //一个存放float的stack容器。
stack <string> stkString; //一个存放string的stack容器。
...
//尖括号内还可以设置指针类型或自定义类型。
3 . stack的push()和pop()操作:
stack.push(elem); //往栈头添加元素
stack.pop(); //从栈头移除第一个元素
stack<int> stkInt;
stkInt.push(1);stkInt.push(3);stkInt.pop();
stkInt.push(5);stkInt.push(7);
stkInt.push(9);stkInt.pop();
stkInt.pop();
此时stkInt存放的元素是1,5
4. stack 的拷贝构造和赋值:
stack(const stack&stk); //拷贝构造函数
stack& operator=(const stack &stk); //重载等号操作符
stack<int>stkIntA;
stkIntA.push(1);
stkIntA.push(3);
stkIntA.push(5);