【发布时间】:2022-01-13 14:34:28
【问题描述】:
我从堆栈溢出中看到了这段代码
int[,] matrix = new int[5, 10];
int row = matrix.GetLength(0);
int col = matrix.GetLength(1);
for (int i = 0; i < row * col; i++)
{
matrix[i / col , i % col] = i + 1;
}
有人说它会产生嵌套循环。 我试图破解这个密码,但我做不到。 有人请解释一下这段代码是如何工作的。
【问题讨论】:
-
避免嵌套循环有什么好处?
-
@SteveB 在这种情况下,没有。但在某些情况下,它可以线性化对底层连续存储的访问。在 C++ 中,将多维数组实现为一维向量是一种相当常见的技术。我相信在 C# 中执行像素级图像处理时(可以想象在实现图像过滤器时)也是如此。