gpt4 book ai didi

c++ - vector 中对象的内存分配

转载 作者:行者123 更新时间:2023-11-30 00:36:47 24 4
gpt4 key购买 nike

我有一个结构 coord 和一个包含 coord 类型对象的 vector :

struct coord
{
int x1;
int x2;
};

vector<coord> v[n];

现在,当我尝试使用 v[0].x1=2 将某些内容(在 vector 声明之后)放入 vector v 时,编译器会给出一个错误提示

'class std::vector<coord, std::allocator<coord> > has no member named x1'

但是当我使用 coord 类型的 temp 对象来存储坐标时,定义 vector 如下

vector<coord> v   //i.e without specifying size of vector

,将其插入 vector ,然后尝试访问 v[0].x1,它工作正常。

那么为什么我不能使用第一种方式而使用第二种方式放入 vector?

最佳答案

要创建大小为 n 的 vector ,请使用圆括号,而不是方括号。

vector<coord> v(n);

使用括号创建一个包含 n 个 vector 的数组,而不是一个具有 n 个坐标的 vector 。

关于c++ - vector 中对象的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15081234/

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