gpt4 book ai didi

c++ - 访问结构 vector

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:00 26 4
gpt4 key购买 nike

我在访问另一个结构中的结构 vector 时遇到问题。可能有一些我看不到的东西......

让我们有这样的结构:

struct Struct_1 {
int Id;
int Mode;
string Name;
};

另一种结构是这样的:

struct Record {
int Id;
int StructId;
string Name;
vector<Struct_1> structHolder;
};

现在我需要填充一些结构记录

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

}

当我尝试填充 structHolder 的数据时,它失败并显示“C++ vector 下标超出范围” 有人知道问题出在哪里吗?非常感谢!

最佳答案

recordVector[i].structHolder 是一个空的 std::vector。所以你不能访问它的任何项目。

一个解决方案是将 Struct_1 的实例填充到您的 vector 中 push_back

Struct_1 myStruct;
myStruct.Id = 1
recordVector[i].structHolder.push_back(myStruct);

关于c++ - 访问结构 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56251641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com