【发布时间】:2020-10-30 23:11:14
【问题描述】:
如果给定矩阵:
A B C
D E F
G H 我
并按行存储在向量中:
[A、B、C、D、E、F、G、H、I]
如何将上述向量与 for 循环一起使用,将转置后的版本存储在另一个向量中。
[A、D、G、B、E、H、C、F、I]
【问题讨论】:
如果给定矩阵:
A B C
D E F
G H 我
并按行存储在向量中:
[A、B、C、D、E、F、G、H、I]
如何将上述向量与 for 循环一起使用,将转置后的版本存储在另一个向量中。
[A、D、G、B、E、H、C、F、I]
【问题讨论】:
旧向量中有 3 行包含 3 个元素(因为列数为 3),而新向量中将有 3 列包含 3 个元素(因为行数为 3)。
因此,可以这样实现:
int nRows = 3, nCols = 3;
for (int i = 0; i < nRows * nCols; i++) {
int r = i / nCols, c = i % nCols;
new[c * nRows + r] = old[r * nCols + c];
}
【讨论】: