【学习笔记】顺序容器的表格方式总结 C++
创始人
2024-03-29 12:06:52
0次
目录
更新中…
顺序容器及其特点
| 名字 | 访问元素 | 插入,删除元素 |
|---|
| vector(可变大小数组) | 支持快速随机访问 | 在尾部之外的位置插入或删除元素可能很慢 |
| deque(双端队列) | 支持快速随机访问 | 在头尾位置插入,删除速度很快 |
| list(双向链表) | 支持双向顺序访问 | 在任意位置插入,删除速度很快 |
| forward_list(单向链表) | 支持单向顺序访问 | 在任意位置插入,删除速度很快 |
| array(固定大小数组) | 支持快速随机访问 | 不能添加,删除元素 |
| string(保存字符) | 支持快速随机访问 | 在尾部位置插入,删除速度快 |
- 除 array 外,其余容器可以自动扩张和收缩容器大小
- string 和 vector 将元素保存在连续的内存空间,按下标寻址快,但在中间添加或删除元素慢
- list 和 forward_list 只能通过遍历方式访问元素
顺序容器操作
- 顺序容器操作涉及 4 种动作:存储,访问,添加,删除
向顺序容器添加元素
| 操作名 | 操作含义 | vector | deque | list | forward_list | array | string | 备注 |
|---|
| push_back | 追加元素到容器尾部 | ✅ | ✅ | ✅ | | | ✅ | - |
| push_front | 前插元素到容器头部 | | ✅ | ✅ | | | |  |
| insert | 任意位置前插 0 个或多个元素 | ✅ | ✅ | ✅ | ✅ | | ✅ | forwar_list 提供特殊版本的 insert |
| emplace | 等效于前三个操作,但是它是构造元素,前三个是拷贝元素 | ✅ | ✅ | ✅ | ✅ | | ✅ | - |
insert
- 参数:
insert 接受迭代器作为第一个参数 insert 重载之一,在特定位置添加,可以用来替代 push_front 操作:iterator insert (const_iterator position, const value_type& val);

insert 重载之二,前插范围内元素:template iterator insert (const_iterator position, InputIterator first, InputIterator last);

emplace
emplace 有三个具体的函数用于等效替代 push_front,insert 和 push_back,它们分别是 emplace_front,emplace,emplace_back

参考
- 《Primer C++》
- cplusplus
相关内容