szx*_*szx 6 d multidimensional-array
我有一个动态的3d数组,目前我正在按照我在C中通常做的那样做:
for (auto i = 0; i < size; i++) {
for (auto j = 0; j < size; j++) {
for (auto k = 0; k < size; k++) {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
看起来很难看.D中是否有更短,也许更"优雅"的方式?
使用foreach可能是D中最惯用的方法.可以仅通过索引和值或值进行迭代.
import std.stdio;
void main () {
auto arr3 = [ [[1 ,2 ,3 ]], [[4 ,5 ,6 ]], [[7 , 8, 9]],
[[11,12,13]], [[14,15,16]], [[17,18,19]] ];
foreach (index3, arr2; arr3)
foreach (index2, arr1; arr2)
foreach (index1, val ; arr1) {
assert (val == arr3[index3][index2][index1]);
writeln (val);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |