- 顺序容器
- 关联容器
- 适配器
顺序容器类型
分类
| 容器模板 | 容器类型 | 特点 |
|---|---|---|
array | 安全数组 | 快速随机访问,不能添加/删除元素 |
vector | 可变大小数组 | 快速随机访问,适合尾部添加/删除元素 |
deque | 双端队列 | 快速随机访问,适合头/尾部添加/删除元素 |
list | 双向列表 | 双向顺序访问,适合任意位置添加/删除元素 |
forward_list | 单向列表 | 单向顺序访问,适合任意位置添加/删除元素 |
string | vector<char> | 快速随机访问,适合尾部添加/删除元素(char) |
如何选择
vector永远是首选,除非有很好的理由选用其他容器- 随机访问:
vectorordeque - 内部添加/删除元素:
listorforward_list - 头尾添加/删除元素:
deque - 内存开销很重要:不使用
listorforward_list - 只在读取时需要内部插入元素,需要随机访问元素
- 在
vector尾部添加元素,再调用sort方法,可避免在内部插入元素; - 若必须要在内部插入元素,可考虑输入阶段用
list,随后拷贝到vector中。
- 在
本文介绍了C++标准库中的各种容器类型,包括顺序容器、关联容器和适配器等,并详细对比了array、vector、deque、list、forward_list及string的特点与应用场景,最后给出了容器选择建议。
5万+

被折叠的 条评论
为什么被折叠?



