C++中的2D int数组

Cas*_*all 1 c++ initialization multidimensional-array

所以我想非常快地初始化一个int 2d数组,但我无法弄清楚如何做到这一点.我做了一些搜索,没有人说如何初始化2D数组,除了:

int [SOME_CONSTANT][ANOTHER_CONSTANT] = {{0}};
Run Code Online (Sandbox Code Playgroud)

基本上,我有8个顶点,我在一个数组中列出了一个立方体每个面的4个顶点.我试过这个:

int[6][4] sides = {{0, 1, 2, 3}, {4, 5, 6, 7}, {0, 4, 7, 3}, {7, 6, 2, 3}, {5, 1, 2, 6}, {0, 1, 5, 4}};
Run Code Online (Sandbox Code Playgroud)

但这告诉我,"侧面"有一个错误,它预计会出现分号.有没有办法像这样快速初始化一个数组?

谢谢!

min*_*nus 7

我想你应该说

int sides[6][4] = {{0, 1, 2, 3}, {4, 5, 6, 7}, {0, 4, 7, 3}, {7, 6, 2, 3}, {5, 1, 2, 6}, {0, 1, 5, 4}};
Run Code Online (Sandbox Code Playgroud)


Der*_*ger 7

你有[] []错误的一面.试试这个:

int sides[6][4] = {{0, 1, 2, 3}, {4, 5, 6, 7}, {0, 4, 7, 3}, {7, 6, 2, 3}, {5, 1, 2, 6}, {0, 1, 5, 4}};
Run Code Online (Sandbox Code Playgroud)

请记住,您真正拥有的是:

int **sides
Run Code Online (Sandbox Code Playgroud)

(指向int的指针).它的侧面有尺寸,而不是int.因此,你也可以这样做:

int x, y[2], z[3][4], ...;
Run Code Online (Sandbox Code Playgroud)