[英]Vector of Vectors Containing Structs
我已经定义了一个结构
struct path{
char type;
bool visit;
bool inPath;
int level;
}
我还定义了这种结构struct的vector的vector
vector < vector<path> > spaceStation(numLevels*levelSize,vector<path> (levelSize));
我有两个问题。
1)我是否定义了向量,以便行数与(numLevels * levelSize)有关,而列与levelSize有关
2)访问向量的各个元素时,如何在其中设置结构的元素。 我尝试使用.at()成员函数几乎没有成功
回复:1
是。 但我不禁要感觉像您想这样做:
vector < vector<path> > spaceStation(numLevels,vector<path> (levelSize))
请注意,关于矢量,完全在您的想象中使用术语“行”和“列”。 您只是在另一个向量内有一个向量。 这就像一个数组的数组-没有暗示特殊的几何形状。
回复:2
因为您有一个vector向量,所以您需要使用两个索引,而不仅仅是一个:
spaceStation[level][pathindex].visit = true;
其中spaceStation[level]
返回索引level
的向量,然后将其放在位置pathindex
(这是您的结构的实例)上的元素,最后修改该结构中的值。
对于第一季度,您是正确的。 例如:4x4维向量。
vector <vector <int>> vec(4,vector(4));
对于Q2,要访问路径,您不能执行以下操作:
例如,spaceStation [2] [3]访问第2行第3列数据。
然后,您可以执行以下操作:
spaceStation [2] [3] .visit访问结构中的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.