将大型永久数组分配为std :: vector或std :: array?

时间:2017-03-14 12:23:21

标签: arrays c++11 vector stack heap

我在C ++上编写了3D Ising model。该模型包含一个包含自旋的三维晶格,然后更新以模拟不同的随机配置(蒙特卡罗模拟)。为了加速代码,我还将每个站点的最近邻居存储在向量/数组中。

由于我不是C ++的专家,我想问一下,存储这些序列的最佳方式/更好的做法是什么。就个人而言,我会在静态STL数组(即堆栈)中初始化晶格和最近的邻居,因为这些数组的大小永远不会改变,并且在程序结束之前数组也不会被销毁。

这是好的还是坏的做法?或者将它们存储为STL向量会更好吗?

1 个答案:

答案 0 :(得分:0)

你可以告诉std::vector它有多大意义。

或者,如果它保持固定大小,您现在可以使用std::array。 例如,

std::array<int, 10> neighbours;

10个整数。