顺序容器 (顺序不依赖于元素的值,而是与元素加入容器时的位置相对应) |
vector(可变大小数组) | 下标访问非常快。支持随机访问。 | 由于是连续存储的,中间添加或者删除非常耗时。在一次插入或者删除操作之后,需要移动之后的所有元素,以保持连续。 |
deque(双端队列) | 在两端添加或删除元素很快,支持随机访问。 | 在中间位置添加或者删除元素代价很高。 | |
list(双向链表) | 添加和删除操作非常快。 | 不支持随机访问(访问一个元素,只能遍历整个容器),与vector、deque和array相比,整个容器的额外开销也狠大。 | |
forward_list(单向链表) | |||
array(固定大小数组) | 比内置数组更安全、更容易使用。支持随机访问 | 大小固定。 | |
关联容器 |
map(键-值) multimap(键可重复) unordered_map(无序) unordered_multimap(无序可重复) |
支持高效的关键字查找与访问。 | |
set(关键字) multiset(键可重复) unordered_set(无序) unordered_multiset(无序可重复) |
支持高效的关键字查询——检查一个给定的关键字是否在set中 |