multidimensional array setting/slicing?
Saaa
empty at needmail.com
Sun Jul 27 19:06:34 PDT 2008
Thanks, the code now looks like this (and works :)
int array[][];
array.length=10;
foreach(ref a; array)
a.length = 5;
int array2[][];
array2.length=2;
foreach(ref a; array)
a.length = 6;
array2=[[1,2,3,4],[5,6,7,8]];
foreach(i, ref a; array[2..2+array2.length])
a[1..1+array2[i].length] = array2[i];
writefln(array2);
writefln(array);
[[1,2,3,4],[5,6,7,8]]
[[0,0,0,0,0,0],[0,0,0,0,0,0],[0,1,2,3,4,0],[0,5,6,7,8,0],[0,0,0,0,0,0],
[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0]]
--------------------------
//And for 3D:
int array[][][];
array.length=6;
foreach(ref a; array)
{
a.length = 6;
foreach(ref b; a)
b.length = 6;
}
int array2[][][];
array2.length=2;
foreach(ref a; array2)
{
a.length = 2;
foreach(ref b; a)
b.length = 2;
}
array2=[[[1,2],[5,6]],[[9,9],[8,7]]];
foreach(i, ref a; array[2..2+array2.length])
foreach(ii, ref b; a[2..2+array2[0].length])
b[1..1+array2[ii].length] = array2[i][ii];
writefln(array2);
writefln(array);
--------------------------
... erm I barely follow it myself :/
I think array can be static and maybe array2 will be as well and I'll
manually keep the x,y and z sizes and do normal for-loops over them.
More information about the Digitalmars-d-learn
mailing list