我有一个程序,它有一个名为convict的对象数组,由Inmate类组成。 代码如下所示:
int intakeAmount;
cout << "How many inmates came in today";
cin >> intakeAmount;
Inmate convict[intakeAmount];
正如您所看到的,用户必须准确输入有多少囚犯进入系统。它后来要求用户输入每个创建的囚犯的信息。这很好用,但如果用户不知道那天有多少罪犯进入系统呢?如果用户需要创建一个新的囚犯并且仍然能够访问每个囚犯属性(即姓名,性别,年龄,身高和体重),我怎样才能成功?我已经安排了我的课程,并设置了getter和setter。这是出于我个人的知识,与任何类型的家庭作业或考试无关。
其他例子: Minecraft - 我知道这是java,我承认我从未玩过它,但我知道世界是无限的,用户可以创建无限量的对象。
我玩过的另一个老派的例子是: 过山车Tycon - 您可以根据自己的需要创建尽可能多的园丁和机械师。
答案 0 :(得分:5)
答案是动态分配数组,因为建议std :: vector会在需要时自动调整大小。
#include <vector>
using std::vector;
vector<bool> numbers( N);
如果你避免使用新的&amp;删除,但声明一个你会发现它的矢量sizeof
不包含实际的矢量。因此它不会在堆栈上分配大量内存,并且当它超出范围时,将自动释放内存,使用RAII避免内存泄漏比使用new / delete分配自己的细微之处更加可靠。
答案 1 :(得分:0)
基本上你想为新犯人添加一个新的列向量。 C ++会让你很难尝试从终端输入一个数组。
我发现以下答案允许您从终端修改数组。 1:[How to feed array elements from user (i.e., the console) and how to pass array elements to a function as arguments
然后输出您为每个向量输入的每个值。