c++ - 嵌套 vector 与连续数组的性能影响

标签 c++ arrays multidimensional-array vector

是否有任何可靠的测试可以清楚地显示访问和写入嵌套 vector 与 C++ 的内置数组之间的性能差异?我听说与访问单个数组中的元素(所有元素都存储在连续内存中)相比,使用嵌套(多维) vector 通常会产生一些性能开销,但这对我来说似乎都是假设。我还没有看到任何实际显示这些差异的测试。它们重要吗?我确信这取决于场景,但作为一个没有经验的程序员,我不太确定这些差异在多大程度上会变得显着。

最佳答案

这绝对取决于场景,在某种程度上,我认为不可能以一般方式回答哪种方法最快。最快的方法是访问模式具有最佳数据局部性的方法——这在很大程度上取决于访问模式以及结构在内存中的布局方式,在嵌套 vector 的情况下,这取决于分配器编译器之间可能会有很大差异。

我会遵循优化的一般规则,即首先以最直接的方式编写内容,然后在证明存在瓶颈时尝试优化。

关于c++ - 嵌套 vector 与连续数组的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45747848/

相关文章:

c++ - 访问其他类中多个对象的私有(private)成员 vector

C++测量执行时间

java - 如何在 JButton 矩阵中创建事件?

javascript - 语法错误: Unexpected identifier while Parsin XML Data Using Google App Script

java - 比较 2 个二维数组 - Java

javascript - 沿对 Angular 线遍历二维数组(矩阵)

c++ - Rapidxml:直接添加子树作为值

c++ - 使 QTreeWidget 只有一列可编辑//疑难解答

ios - 如何在选择器 View 中填充 "ArrayYear"?

javascript - 从嵌套的对象数组中删除对象