搞定技术面试:那些你可能不知道的 vector 和 array 的区别
最近几年,计算机工作越发难找,你必须比其他人了解的更多,才能有更多的机会找到一个更好的工作。
C++ 标准库(STL)是很多C++面试中都会问到的问题,很多很多问题会关于 Vector 的空间分配、动态增长之类的问题,那么你了解 STL 中那些顺序容器的区别与联系吗?
你知道在什么情况选用什么容器吗?
先说结论,一般情况选择 vector
是很好的选择,如果你的程序目标有如下特点时,才可能需要换用别的容器:
- 有很多小元素、空间额外开销比较重要,不要使用 list 和 forward_list;
- 程序要求随机访问,选择 vector 和 deque;
- 程序经常在中间插入元素,可以选择 list 和 forward_list;
- 程序只在头尾插入元素,不常在中间插入元素,选择 deque;
- 程序一开始插入时会在中间插入元素,但之后的使用过程中基本不在中间插入元素,先用 list 处理输入场景,再用 vector 拷贝 list 的数据,处理后续使用。
整体介绍
所有的顺序容器都具有可以快速按顺序访问元素的能力,但每种容器在具体的实现上又有些区别。
顺序容器类型 | 含义 | 特点 |
---|---|---|
vector |