gpt4 book ai didi

c++ - 带对象的循环 vector

转载 作者:行者123 更新时间:2023-11-28 02:46:24 25 4
gpt4 key购买 nike

所以我想做的是使用 vector 制作多个对象。现在,如果我不使用 vector 并且只有一个对象,我的程序就可以正常工作。那么我怎样才能让我的 BoxOfProduce 类使用 vector 拥有不止一次的对象。我尝试了你在你面前看到的东西,它起作用了,但程序随后崩溃并说没有响应。我知道我必须在某个地方使用推回东西但不知道在哪里。我只发布了主要功能,所以你不必看到整个程序,因为它太大了。

int main()
{
int x;
int size;


vector<BoxOfProduce>box;
cout<<"How many boxes you want";
cin>>size;

for ( x = 0; x < size; x++)
{
box[x].setItemAry();
box[x].randomPick();


box[x].display();
box[x].change();
box[x].display2();
}

//BoxOfProduce box;


//box.setItemAry();
//box.randomPick();


//box.display();
//box.change();
//box.display2();



getchar();getchar();
return 0;

}

最佳答案

您正在访问 vector 中的对象而不创建它们。你的代码应该是这样的:

for ( x = 0; x < size; x++)
{
BoxOfProduce obj; //create an object
obj.setItemAry();
obj.randomPick();
//.. set other properties
box.push_back(obj); //insert it into the vector
}

vector<BoxOfProduce>box;只会创建一个 vector ,但它不包含任何 BoxOfProduce目的。因此,当您尝试访问对象时,程序会崩溃。

关于c++ - 带对象的循环 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24256220/

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