有什么办法可以给数组的成员赋予不同的名称?

时间:2019-11-29 13:39:11

标签: c++

例如,我正在制作Pacman游戏,并使用struct数组来表示幽灵。

但是有什么方法可以将ghost[0]表达式更改为Inky吗?

2 个答案:

答案 0 :(得分:2)

似乎您正在寻找关联数组。关联数组是可以用类似关联的东西访问的数组。例如,如果要访问水果数组并获取苹果,则可以执行:fruits["apple"]并获取值,而不用怀疑苹果是哪个索引。

如果这是您真正想要的,那么在C ++中将其称为地图。该映射与关联数组相同。看看如何使用它。

https://en.cppreference.com/w/cpp/container/map

答案 1 :(得分:2)

您可以定义对struct数组中任何项目的引用。

示例:

Ghost &inky   = ghosts[0];
Ghost &blinky = ghosts[1];
Ghost &pinky  = ghosts[2];
Ghost &clyde  = ghosts[3];

为了遵守C ++约定,我建议所有这些引用均以小写开头的名称进行定义。

然后您可以使用.将所有这些引用用作普通变量,以调用成员函数或读取或分配成员变量。

示例:

inky.setBackColor(blue);
inky.remove();
clyde.size += 2;