gpt4 book ai didi

c++ - 无限对象

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

我有一个程序,它有一个名为 convict 的对象数组,由类 Inmate 组成。代码如下所示:

int intakeAmount;
cout << "How many inmates came in today";
cin >> intakeAmount;
Inmate convict[intakeAmount];

如您所见,用户必须准确输入进入系统的囚犯人数。它随后要求用户输入创建的每个罪犯的信息。这很好用,但是如果用户不知道那天有多少罪犯进入系统怎么办?每当用户需要创建一个新的罪犯并且仍然能够访问每个罪犯的属性(即姓名、性别、年龄、高度和体重)时,我该如何做到这一点?我已经设置好我的类(class)以及 setter和getter 。这是我个人的知识,与任何类型的作业或测试无关。

其他例子:Minecraft - 我知道这是 java,我承认我从未玩过它,但我知道世界是无限的,用户可以创建无限数量的对象。

我玩过的另一个老派例子是:过山车大亨 - 您可以根据需要创建任意数量的园丁和机械师。

最佳答案

答案是动态分配数组,正如建议的那样,std::vector 会在需要时自动调整大小。

#include <vector>
using std::vector;

vector<bool> numbers( N);

如果您避免新建和删除,但声明一个 vector ,您会发现它的 sizeof 不包括实际 vector 。因此它不会在堆栈上分配大量内存,并且会自动释放内存,当它超出范围时,使用 RAII 比使用 new/delete 分配自己的微妙之处更可靠地避免内存泄漏。

C++ Information pages for std::vector

Resource Acquisition Is Initialization

关于c++ - 无限对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24501650/

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