我读过很多地方,比如 here std::vector
始终是连续的,但我没有找到对此含义的解释或为什么这很重要?
这是否意味着它们在内存中有固定位置或什么?
最佳答案
Contiguous 在此上下文中表示按顺序编号的 vector 元素在内存空间中彼此相邻。例如,如果元素 i
位于地址 a
,并且大小为 s
,则元素 i+ 1
位于地址a+s
,元素i+2
位于a+s+s
,等等。
这很重要,原因有二:
- 连续要求使随机访问成为可能 - 您可以根据 vector 的基地址和元素的索引计算任何元素的位置
- 您可以预测引用的位置 - 出于缓存行为分析的目的,按顺序处理 vector 元素与按顺序处理数组元素相同。
关于c++ - std::vector 连续意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35535911/