顺序容器适配器
2023年12月23日 2023年12月29日
adaptor
-
容器适配器接受一种已有的容器类型,使其行为看起来像一种不同的类型
-
容器适配器的操作是基于容器本身允许的操作实现的
-
每个容器适配器都基于底层容器类型的操作定义了自己的特殊操作
我们只能使用适配器操作,不能使用底层容器类型的操作 -
array和forward_list不能作为容器适配器的底层容器
顺序容器 栈 队列 优先级队列 vector/string O X O deque O O O list O O X
类型成员
- | |
---|---|
size_type | 元素个数类型 |
value_type | 元素类型 |
container_type | 底层容器类型 |
操作
创建容器适配器
1A a; // 空适配器 2 3A a(c); // 使用容器c拷贝初始化a
创建空适配器
1deque<int> deq;
使用底层容器初始化适配器
栈和队列支持
1deque<int> deq; 2stack<int> stk(deq);
size操作
获取元素个数
1a.size();
empty操作
容器为空返回true, 否则返回false
1a.empty(); 2// <=> 3// !a.size();