今天在C++考试中看到一道题:
给定数组 int Multi[2][3][2] = {14,11,13,10,9,6,8,7,1,5,4 ,2}
, Multi[1][1][0]
的值是多少?
不应该像这样初始化 3 维数组:{{{},{}},{{},{}},{{},{}}}
?我怎样才能找到具有这种 indeces 的元素的值?太困惑了。
最佳答案
您可以通过两种方式初始化数组,但建议使用花括号,因为它可以提高可读性。
查找非大括号格式的多维数组的元素值的最简单方法是拆分数组。例如,您的数组尺寸为 2x3x2:
首先将数组拆分为 2 个集合 (2x3x2)
{14,11,13,10,9,6,8,7,1,5,4,2} --> {{14,11,13,10,9,6}, {8,7,1,5,4,2}}
然后将每个集合分成 3 个集合 (2x3x2)
{{14,11,13,10,9,6},{8,7,1,5,4,2}} --> {{{14,11}, {13,10} ,{9,6}}, {{8,7}, {1,5}, {4,2}}}
现在,如您所见,每个较小的集合 (2x3x2) 中都剩下 2 个元素,因此您已经用大括号格式化了数组。
现在查找索引为 [1][1][0]
的元素的值更简单了。此元素是第二个 ([1][1][0]) 较大集合的第二个 ([1][1][0]) 较小集合的第一个 ([1 ][1][0]) 元素,所以答案是 1。
话虽如此,这样的试题表明你的老师缺乏专业精神,他们更感兴趣的是滥用编程语言语法,而不是教授基本的初始化规则。
关于c++ - 多维数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30350699/