0

我目前正在构建一个程序,该程序将计算 n 维中的自动回避行走。该程序必须有一个它以前访问过的坐标列表。对于已知的最大维数,我将简单地制作一个位置结构的向量,如下所示:

struct Position
{
    long int x;
    long int y;
    long int z;
    long int w;
    etc...
}

std::vector<Position> history;
Position currentSite;

但是在为 n 维位置编程时,我不确定如何在不制作 n*walk_length 大小的数组的情况下做到这一点。

有没有更“正确”的方法来做到这一点?

注意:我正在用 C++ 编程。

4

2 回答 2

3

如果n在编译时已知,则可以std::array<long,n>用来表示一个位置。

如果n直到运行时才知道,std::vector<long>将是一个不错的选择。

于 2013-11-13T14:37:41.193 回答
2

我会使用矢量作为坐标,并设置位置:

typedef std:vector<long> Position;
typedef std::set<Position> VisitedPositions;

然后您将能够动态选择 n 并更快地搜索位置。

于 2013-11-13T14:39:57.740 回答