在c ++中初始化const多维数组

bar*_*rry 3 c++ arrays const multidimensional-array

我目前正在使用c ++书中的一些练习,该书使用基于文本的游戏作为其教学工具.我坚持的练习涉及让电脑从const数组(字符串)中选择一个单词,将字母混合起来并要求玩家猜出单词.这很容易,但是随后本书要求添加选项以向玩家提供提示以帮助他们猜测,首先作为并行数组(再次,没问题)然后作为二维数组.这就是我被困住的地方.我的(缩短的)单词数组如下:

const string WORDS[NUM_WORDS] = {"wall", "glasses"};
Run Code Online (Sandbox Code Playgroud)

我需要提供每个单词的提示,但不知道如何去做.从手机发布这么广泛的谷歌搜索不是一个选项!

我的并行数组如下:

const string HINTS[NUM_WORDS] = "brick...", "worn on head"};
Run Code Online (Sandbox Code Playgroud)

只需要将两者结合起来.

先谢谢你,巴里

use*_*632 14

你可以制作2d阵列?

string aArray[][2] = {{"wall", "brick..."}, 
                               {"glasses", "corrective eye tool thingymajig"},
                               {"calculator", "number cruncher"}};
Run Code Online (Sandbox Code Playgroud)

不确定语法是否正确,但我希望你能得到这个概念.

它是另一个数组中的数组.

编辑:我从第一个方括号中删除了NUM_WORDS.你不能从变量声明多维数组..抱歉,我忘记了.我只是测试它,它的工作原理.


小智 5

使用结构数组:

typedef struct
{
    string Word;
    string Hint;
}
WORDDEF;

const WORDDEF WordList[] =
{
    {"wall", "brick..."},
    {"glasses", "worn on head"},
    ...
};
Run Code Online (Sandbox Code Playgroud)

然后,您将它们称为:

printf ("For entry %d, Word is %s, Hint is %s\n", 1, WordList[1].Word, WordList[1].Hint);
Run Code Online (Sandbox Code Playgroud)