我已经定义了一个结构
struct path{
char type;
bool visit;
bool inPath;
int level;
}
我还定义了这种类型结构的 vector vector
vector < vector<path> > spaceStation(numLevels*levelSize,vector<path> (levelSize));
我有两个问题。
1) 我是否定义了 vector ,以便行数属于 (numLevels*levelSize),列数属于 levelSize
2) 访问 vector 的各个元素时,如何设置其中的结构元素。我尝试使用 .at() 成员函数但收效甚微
最佳答案
回复:1
是的。但我忍不住觉得你想改为这样做:
vector < vector<path> > spaceStation(numLevels,vector<path> (levelSize))
请注意,关于 vector ,使用术语“行”和“列”完全是您的想象。你只是在另一个 vector 中有一个 vector 。它就像一个数组的数组 - 没有暗示特殊的几何形状。
回复:2
因为你有一个 vector 的 vector ,所以你需要使用两个索引,而不仅仅是一个:
spaceStation[level][pathindex].visit = true;
其中 spaceStation[level]
返回索引 level
处的 vector ,然后您将其作为位于 pathindex
位置的元素(这是一个实例您的结构),最后修改该结构中的值。
关于c++ - 包含结构的 vector 的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19041663/