包含结构的传染媒介传染媒介

时间:2013-09-27 02:14:46

标签: c++ vector struct

我已经定义了一个结构

struct path{
    char type;
    bool visit;
    bool inPath;
    int level;
}

我还定义了这种类型struct

的向量向量
vector < vector<path> > spaceStation(numLevels*levelSize,vector<path> (levelSize));

我有两个问题。

1)我定义了向量,以便行数(numLevels * levelSize)和列属于levelSize

2)当访问向量的各个元素时,如何在其中设置struct的元素。我尝试使用.at()成员函数取得了一点成功

2 个答案:

答案 0 :(得分:1)

Re:1

是。但我不禁觉得你想这样做:

vector < vector<path> > spaceStation(numLevels,vector<path> (levelSize))

请注意,使用术语“行”和“列”完全在您的想象中,涉及向量。你只是在另一个向量中有一个向量。它就像一个数组数组 - 没有隐含的特殊几何。

回复:2

因为你有一个矢量矢量,你需要使用两个索引,而不仅仅是一个:

spaceStation[level][pathindex].visit = true;

spaceStation[level]返回索引level处的向量,然后将该元素放在位置pathindex(这是结构的一个实例)的位置,最后修改一个值结构

答案 1 :(得分:0)

对于Q1,你是对的。 例如:4x4维度向量。

  

矢量&lt;矢量&lt; int&gt; &GT; vec(4,vector(4));

对于Q2,要访问路径,您无法执行以下操作:

例如,

spaceStation [2] [3]访问第2行第3列数据。

然后你可以这样做:

spaceStation [2] [3]。访问结构中的元素。