gpt4 book ai didi

C++ 关于给 Vector myVariable 赋值

转载 作者:太空宇宙 更新时间:2023-11-04 16:24:51 34 4
gpt4 key购买 nike

C++关于给Vector myVariable赋值

大家好。

我有这个结构

struct Point
{
int x,y;
}

在我的 main.cpp 中我得到了这样的东西

int main()
{
vector<Point> myPoints;

myPoints[0].x = 1;
myPoints[0].y = 1;

myPoints[1].x = 2;
myPoints[1].x = 2;

return 0;
}

我得到了分段核心转储,将值设置为 vector 元素有什么问题。

感谢指导!

最佳答案

vector<Point> myPoints;

创建 Point 对象的空 vector 。因为它是空的,所以您无法访问 myPoint[0]myPoint[1] 等。尝试这样做不会自动创建元素;相反,它将调用未定义的行为——通常是段错误。

使用push_back 将元素追加到 vector 中:

myPoints.push_back(Point(1,1));

或者,或者,调整 vector 的大小,使其包含默认构造的元素:

myPoints.resize(2);

您还可以使用 std::vector 的构造函数的参数在初始化时调整它的大小:

vector<Point> myPoints(2);  // auto-resizes the vector to length 2

注意 push_back在 C++11 中,您可以使用 emplace_back() 而不是 push_back() 以及:myPoints.emplace_back(1,1); 通过使用 1 就地调用 Point 构造函数将新元素附加到 vector , 1 作为构造函数的参数。这是将新创建的元素附加到 vector 的最有效方法。

关于C++ 关于给 Vector<Point> myVariable 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13115869/

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