我有一个结构:
struct OutputStore
{
int myINT;
string mySTRING;
}
如果我创建一个类型为 OutputStore 的数组,如下所示:
OutputStore *OutputFileData = new OutputStore[100];
然后我可以用:
OutputFileData[5].myINT = 27;
但是如果我使用 vector 而不是数组:
vector<OutputStore> *OutputFileData = new vector<OutputStore>(100);
然后如果我尝试,我会得到一个“...不是‘std::vector<_Ty>’的成员”错误:
OutputFileData[5].myINT = 27;
既然您可以像访问数组一样通过索引访问 vector ,为什么这行代码不起作用。 我只是想知道,因为这表明我缺少一些基本的理解。
(我更改为 vector ,因为我想 push_back 因为我不知道我的数据将达到的大小。我已经通过使用结构的构造函数并通过它推回来让它工作......我只是想了解这里发生了什么)
最佳答案
不要创建指向 vector 的指针。就这样
vector<OutputStore> OutputFileData(100);
你会没事的。要使上面的代码正常工作,您需要执行以下操作
(*OutputFileData)[5].myINT = 27;
关于c++ - 访问结构 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1166029/