C++标准库的容器适配器
一般来讲除了顺序容器(vector,list,deque),标准库还提供了三种顺序容器适配器:queue,priority_queue和stack。其作用在于让某一种已知的容器类型采用另一种不同的抽象类型的工作方式(例如stack可以使任何一种容器以栈的方式工作)。
- 适配器常见通用的操作命令:size_type(一种类型,存储适配器类型对象最大长度)
value_type(元素类型) - 使用适配器时,必须包含相关的头文件:#include,#include
- 适配器的初始化,例如deq是deque类型的一个容器,则可以用deq初始化一个新的栈, 即stack stk(deq)。
- 适配器的关系运算,前提是适配器中的元素类型支持关系操作符运算,栈容器适配器支持的操作有:s.empty()如果栈为空则返回true反之返回false
s.size()返回栈中元素的个数
s.pop()删除栈顶元素,但是不返回对应值
s.top()返回栈顶元素值,但是不删除该元素
s.push(item)在栈顶压入新元素item
const stack<int>::size_type sta_size = 10;
stack<int> sta;
int a = 0;
while (sta.size() != sta_size)
sta.push(a++);
int b = 0;
while (sta.empty() == false) {
int num = sta.top();
if (num != b) {
cout << num ;
++b;
}
sta.pop();
}
//以上程序使用了5个栈操作(实现进栈,出栈)