0 c++ arrays vector multidimensional-array
我正在寻找在运行超过4个索引的数据结构中保存双值的最快方法.
我用以下方式用std :: vector尝试了它:
vector<vector<vector<vector<double>>>> myValues
Run Code Online (Sandbox Code Playgroud)
我的程序有很多操作,其中mValues的值被读取和更改,我想提高性能.
这个四维矢量结构的速度有多快?是否有更合适的选择?
非常感谢你.
在内部,向量将其数据存储在动态分配的数组中,因此4级向量将具有指向指向数组的指针数组的指针数组,指针数组指向double值数组.
另一种方法是分配一个四维线性阵列(可能通过一个载体)和手动执行指数计算(的索引arr[i][j][k][l]是l + level4_size * (k + level3_size * (j + level2_size * i)),如果将肯定在存储器使用效率更高,不确定为速度,因为它可以取决于实际的访问.如果你真的关心速度,你应该在实际环境中对两种实现进行基准测试.