std :: vector连续的含义

nov*_*ain 3 c++ stl vector

我读过像很多地方在这里std::vector总是连续的,但我没有找到一个解释这是什么意思,或者为什么这很重要?

这是否意味着他们在记忆中有固定的位置或者什么?

das*_*ght 7

连续在此上下文中意味着顺序编号的矢量的元素被彼此相邻地位于存储器空间.例如,如果一个元素i位于该地址a,并且其大小为s,则该元素i+1将位于该地址a+s,该元素i+2将位于a+s+s,等等.

这有两个重要原因:

  • 连续需求使随机访问成为可能 - 您可以根据向量的基址和元素索引计算任何元素的位置
  • 您可以预测引用的局部性 - 顺序处理向量元素与为了缓存行为分析而顺序处理数组元素相同.