c++ - 访问结构 vector

标签 c++ arrays vector struct

我有一个结构:

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/

相关文章:

c++ - 基于对象指针在 vector 中获取对象

C++11绑定(bind): difference between using and not-using placeholder

c++ - 使用 Boost.Program_options 创建前缀命令

php - 为每个类别打印观看次数最多的视频

java:在主方法中使用方法中的3d数组

c# - 将数组的一部分复制到列表的快速方法?

c++ - 使用 push_back 在类中填充结构的值

c++ - 如何到达vector<list<int>>的指定元素?

c++ - 代码解析不适用于 CUDA、Clion 和 CMake

c++ - 在 opencv2 和 opencv3 中使用 findContours 时的输出差异