我的模拟尝试预测系统在很长一段时间内的需求...输出结果是一个非常大的 4D 数组(我使用 4 维来最大程度地减少数据写入数组时出错的可能性)也就是说,这样我可以更好地理解它!)。
数组大小为 25x4x3x20000,我需要它至少是一个(无符号整数),但我知道堆栈无法处理这么大的数据量。
unsigned int ar[25][4][3][2000];
我四处寻找并找到了不同的解决方案。但是我仍然不确定要实施哪一个。所以我的问题是:就性能和良好实践而言,哪一个更好:
std::vector< std::array<int, 5> > vecs; vecs.reserve(N);
如有其他建议,我们将不胜感激!
最大的问题是最终维度中的
[2000]
。让它充满活力。
拥有这样的 3D 阵列:
using arr3d = std::array<std::array<std::array<unsigned int, 25>, 4>, 3>;
然后是第四维的向量:
std::vector<arr3d> ar;
ar.reserve(N); // for optimization