【紧急科普】关于 std::vector 和 std::list 谁性能好的讲解

发布时间 2023-09-04 16:38:09作者: 芯片烤电池

很多面试官。。。唉。不是一个年代的人吧。八股文当中现在倾向于说 list 中间插入性能更好。

1,std::vector 和  std::list 同属逻辑线性表。

2,std::vector 在内存当中连续,std::list 在内存当中不连续。

3,std::vector 因为在内存当中连续,随机访问性能更好,支持下标访问,std::list 则相反。

4,两者需要考虑的是:std::vector 考虑内存操作复杂度,std::list 考虑逻辑复杂度。

5,影响两者性能的主要因素:

std::vector 在内存空间不足时,会申请新内存,拷贝旧数据到新内存

std::list 需要先遍历找到相应的节点,申请单节点内存、更改前后节点指针。

6,两者谁性能更好完全取决于使用方式,包括单个元素内存占用、元素数量等