【发布时间】:2014-07-01 02:29:12
【问题描述】:
我有一个程序,它有一个名为 convict 的对象数组,由 Inmate 类组成。 代码如下所示:
int intakeAmount;
cout << "How many inmates came in today";
cin >> intakeAmount;
Inmate convict[intakeAmount];
如您所见,用户必须准确输入进入系统的囚犯数量。它稍后要求用户输入每个创建的罪犯的信息。这很好用,但如果用户不知道当天有多少罪犯进入系统怎么办?当用户需要创建一个新的罪犯并且仍然能够访问每个罪犯的属性(即姓名、性别、年龄、身高和体重)时,我怎样才能做到这一点?我已经设置了我的类,并设置了 getter 和 setter。这是我个人的知识,与任何家庭作业或测试无关。
其他示例: Minecraft - 我知道这是 java,我承认我从未玩过它,但我知道世界是无限的,用户可以创建无限数量的对象。
我玩过的另一个老派例子是: 过山车大亨 - 您可以创建任意数量的园丁和机械师。
【问题讨论】:
-
这实际上不是有效的 C++,因为在编译时需要知道数组大小。你想要
std::vector。 -
听起来你至少需要一个菜单驱动的 cmd 应用程序,它可以循环回到
1) Add convict 2) Access convict etc.的选择或使用 GUI。然后,您只需根据用户所需的属性访问元素,即;姓名、号码等。至于不知道金额,您可以使用list、vector或其他类似结构。 -
你熟悉链表的概念吗?这是一个很好的练习,每个程序员都应该学习。
-
数组可以用作隐式链表,其中每个项目在内存中都是相邻的,而不是追逐指针。扫描速度更快,如果您没有对它们进行排序并且只是在最后推回,那么添加至少与链表一样快。