【发布时间】:2020-11-17 07:14:08
【问题描述】:
我有一个 2D 向量 matrix 我想将其元素转换为另一个 2D 向量 result 。唯一的问题是元素的位置在result 中通过代码中显示的逻辑进行了更改。我编写的程序被执行,但result 将所有元素显示为0,这是不正确的。如何解决这个问题?
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
vector<vector<int>> matrix;
int n;
matrix = {{1,2},{3,4}};
n = matrix.size();
//Loop to print `matrix`
cout << "'matrix' 2D Vector" << endl;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << "\n";
}
vector<vector<int>> result(n, vector<int> (n));
//Loop to shift elements from `matrix` to `result`
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
result[j,n-i+1] = matrix[i][j];
}
}
//Loop to print `result`
cout << "'result' 2D Vector" << endl;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
cout << result[i][j] << " ";
}
cout << "\n";
}
return 0;
}
输出
'matrix' 2D Vector
1 2
3 4
'result' 2D Vector
0 0
0 0
预期输出
'matrix' 2D Vector
1 2
3 4
'result' 2D Vector
3 1
4 2
【问题讨论】: