c++ - 无限对象

标签 c++ object

我有一个程序,它有一个名为 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/

相关文章:

sql-server - Powershell将对象插入SQL Server数据库更优雅的解决方案

javascript - 递归列出 JSON 中的所有对象属性路径

perl - Perl 中引用子类包名

ios - 我们可以[ self 释放]吗?

javascript - 如何根据对象中的属性合并对象数组中的对象

c++ - 在 Visual Studio 2012 中链接 zlib

c++ - 检测卡片上的水滴并计算其数量和大小 OpenCV C++

c++ - 函数声明无效。开发C++

c++ - 成员函数声明的参数列表后面的单 & 是什么意思?

c++ - 有条件地 constexpr 变量