我在访问另一个结构中的结构向量时遇到问题。可能有些事情我无法解决...
让我们有这样的结构:
struct Struct_1 {
int Id;
int Mode;
string Name;
};
Run Code Online (Sandbox Code Playgroud)
这样的另一个结构:
struct Record {
int Id;
int StructId;
string Name;
vector<Struct_1> structHolder;
};
Run Code Online (Sandbox Code Playgroud)
现在我需要填写一些结构记录
int recordCount = 10;
vector<Record> recordVector(recordCount);
for(int i = 0; i < recordVector.size(); ++i){
recordVector[i].Id = ...
recordVector[i].StructId = ...
recordVector[i].Name = ...
// till now it is ok
recordVector[i].structHolder[i].Id = ..
recordVector[i].structHolder[i].Mode = ..
// and here it fails when i access vector
}
Run Code Online (Sandbox Code Playgroud)
当我尝试填充structHolder的数据时,它失败并显示“ C ++向量下标超出范围”。有人知道哪里出了问题吗?非常感谢!
recordVector[i].structHolder是空的std::vector。因此,您无法访问它的任何项目。
一个解决方案是,以填补的一个实例Struct_1的push_back应用到矢量
Struct_1 myStruct;
myStruct.Id = 1
recordVector[i].structHolder.push_back(myStruct);
Run Code Online (Sandbox Code Playgroud)