我正在为学校开设一项模拟学生的任务,并在注册办公室开设了多个窗口。
我为学生们排队了但是有人建议我使用一个数组来实现我们自己制作的队列类的窗口。
我不明白为什么当除了学生时间减少之外我还想知道关于每个窗口的其他变量时,数组会起作用。
我正在寻找一些方向或更深入的解释,说明如何使用数组来存储每个学生在窗口的时间而不是另一个双向链表?< / p>
答案 0 :(得分:0)
我看到它的方式你有不同数量的学生和固定数量的窗户(建筑物通常不会经常改变)。如果我在代码中对此进行表示,我将使用动态大小的容器(列表,向量,队列等)来包含所有学生和寄存器的固定大小数组。这将体现代码中真实情况的意图,使得使用您的代码的其他人不太可能犯下与注册商办公室大小相关的任何错误。通常选择容器类型都与其预期用途有关!
因此,您可以设计一个类来使用固定大小的数组来保存所有寄存器(甚至更好:一个模板指定的大小,看作是您使用的C ++)。然后,您可以使用给定的大小参数编写所有其他与注册器相关的函数,因此永远不会超出您的注册器阵列。
最后:数组包含您希望保留的任何信息。你可以让它只保留数字(如int),但你也可以拥有任何类型的对象!我的意思是:创建一个注册商类,其中包含您希望为每个注册商收集的所有信息。然后创建一个包含Registrar对象的数组。然后,只要您访问阵列中的单个元素,就可以通过该单个引用访问单个注册器的所有信息。