【问题标题】:How to insert element of a 2D Vector into another 2D vector in C++?如何在 C++ 中将 2D 向量的元素插入另一个 2D 向量?
【发布时间】: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

【问题讨论】:

标签: c++ matrix vector c++14


【解决方案1】:

首先只包含&lt;iostream&gt;&lt;vector&gt; 头文件而不是&lt;bits/stdc++.h&gt; 并且您的代码由于result[j][n-i+1] = matrix[i][j]; 语句而引发out_of_range 异常,请更改它result[j,n-i-1] = matrix[i][j];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多