c++ - std::vector 连续意义

标签 c++ vector stl

我读过很多地方,比如 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/

相关文章:

c++ - C++ 游戏编程中的 Direct-X

c++ - std::priority_queue 中具有相同优先级的元素的顺序

c++ - 链接时间代码生成的优缺点是什么? (对比 2005 年)

c++ - MapReduce - 直接插入 map 中 vector<int> 的第一个位置

vector - 如何在 Rust 中将相同的整数添加到向量的每个元素?

c++ - 将 vector 放入 map

C++ 模板 - 在元组及其类型的容器上进行模板化

c++ - 带有双端队列的随机访问迭代器的无效迭代器

c++ - 使用 std::string.c_str() 作为另一个方法的参数时的段错误

减少 CPU 指令大小的 C++ 技术?