我目前正在构建一个计算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 ++编程。
答案 0 :(得分:3)
如果在编译时知道n
,您可以使用std::array<long,n>
来表示某个职位。
如果在运行时才知道n
,std::vector<long>
将是一个不错的选择。
答案 1 :(得分:2)
我使用矢量作为坐标,并设置位置:
typedef std:vector<long> Position;
typedef std::set<Position> VisitedPositions;
然后,您将能够动态选择n并更快地搜索位置。