我在C ++上编写了3D Ising model。该模型包含一个包含自旋的三维晶格,然后更新以模拟不同的随机配置(蒙特卡罗模拟)。为了加速代码,我还将每个站点的最近邻居存储在向量/数组中。
由于我不是C ++的专家,我想问一下,存储这些序列的最佳方式/更好的做法是什么。就个人而言,我会在静态STL数组(即堆栈)中初始化晶格和最近的邻居,因为这些数组的大小永远不会改变,并且在程序结束之前数组也不会被销毁。
这是好的还是坏的做法?或者将它们存储为STL向量会更好吗?
答案 0 :(得分:0)
你可以告诉std::vector
它有多大意义。
或者,如果它保持固定大小,您现在可以使用std::array
。
例如,
std::array<int, 10> neighbours;
10个整数。