标准::矢量的 4 维性能

Performance of std::vector with 4 dimensions

本文关键字:性能 标准      更新时间:2023-10-16

我正在寻找在运行超过 4 个索引的数据结构中保存双精度值的最快方法。

我通过以下方式尝试了 std::vector:

vector<vector<vector<vector<double>>>> myValues

我的程序有很多读取和更改mValues值的操作,我想提高性能。

这种 4 维矢量结构的速度有多快?有没有更好的选择,哪个更合适?

谢谢。

在内部,向量将其数据存储在动态分配的数组中,因此 4 级向量将具有相同的性能,指向指针数组的指针数组到指针数组到双精度值数组的指针数组。

另一种方法是分配一个 4D 线性数组(可能通过向量(并手动进行索引计算(arr[i][j][k][l]的索引是l + level4_size * (k + level3_size * (j + level2_size * i)),如果肯定会更有效地使用内存,不确定速度,因为它可能取决于实际访问。如果您真的关心速度,则应在实际环境中对这两种实现进行基准测试。