📜  如何在C++中扁平化Vector或2D Vector(1)

📅  最后修改于: 2023-12-03 15:38:31.361000             🧑  作者: Mango

如何在C++中扁平化Vector或2D Vector

在C++中,Vector是使用非常广泛的一个容器。常常会有将Vector进行扁平化的需求,即将二维数组转为一维数组。本文将介绍如何在C++中扁平化Vector或2D Vector。

扁平化Vector

在C++中,可以通过循环扁平化vector。以下为一个示例代码:

#include<iostream>
#include<vector>
using namespace std;

vector<int> flatten2D(vector<vector<int>>& arr) {
    vector<int> result;
    for (int i = 0; i < arr.size(); i++) {
        for (int j = 0; j < arr[i].size(); j++) {
            result.push_back(arr[i][j]);
        }
    }
    return result;
}

int main() {
    vector<vector<int>> arr = {{1,2,3}, {4,5,6}, {7,8,9}};
    vector<int> result = flatten2D(arr);
    for (int i = 0; i < result.size(); i++) {
        cout<<result[i]<<" ";
    }
    return 0;
}

此代码会将二维数组arr扁平化为一维数组result,并依次输出。

扁平化2D Vector

如果要扁平化二维的vector,可以使用以下代码:

#include<iostream>
#include<vector>
using namespace std;

vector<int> flatten2D(vector<vector<int>>& arr) {
    vector<int> result;
    for (int i = 0; i < arr.size(); i++) {
        result.insert(result.end(), arr[i].begin(), arr[i].end());
    }
    return result;
}

int main() {
    vector<vector<int>> arr = {{1,2,3}, {4,5,6}, {7,8,9}};
    vector<int> result = flatten2D(arr);
    for (int i = 0; i < result.size(); i++) {
        cout<<result[i]<<" ";
    }
    return 0;
}

此代码同样会将二维数组arr扁平化为一维数组result,并依次输出。

通过以上两段代码的比较,可以发现,将二维vector扁平化的方法相对于二维数组,需要使用特殊方法insert()