int twodim[5][8];
int threedim[3][5][8];
如何在c ++中创建固定长度的多维数组?
答案 0 :(得分:0)
它不像PHP那样,但您可以使用此函数(基于Grzegorz'SplFixedArray
提示)生成任意维度的固定大小的数组。
function createFixedArray() {
$args = func_get_arg(0);
$array = new SplFixedArray($args[0]);
if (isset($args[1])) {
$newArgs = array_splice($args, 1);
for ($i=0; $i<$args[0]; $i++) {
$array[$i] = createFixedArray($newArgs);
}
}
return $array;
}
使用示例:
$fixedArray = createFixedArray(array(2, 2, 2));
$fixedArray[0][0][0] = 0;
$fixedArray[0][0][1] = 1;
$fixedArray[0][1][0] = 1;
$fixedArray[0][1][1] = 0;
$fixedArray[1][0][0] = 1;
$fixedArray[1][0][1] = 0;
$fixedArray[1][1][0] = 0;
$fixedArray[1][1][1] = 1;
var_dump($fixedArray);
生成
object(SplFixedArray)#1 (2) {
[0]=>
object(SplFixedArray)#2 (2) {
[0]=>
object(SplFixedArray)#3 (2) {
[0]=>
int(0)
[1]=>
int(1)
}
[1]=>
object(SplFixedArray)#4 (2) {
[0]=>
int(1)
[1]=>
int(0)
}
}
[1]=>
object(SplFixedArray)#5 (2) {
[0]=>
object(SplFixedArray)#6 (2) {
[0]=>
int(1)
[1]=>
int(0)
}
[1]=>
object(SplFixedArray)#7 (2) {
[0]=>
int(0)
[1]=>
int(1)
}
}
}