📅  最后修改于: 2023-12-03 15:38:31.361000             🧑  作者: Mango
在C++中,Vector是使用非常广泛的一个容器。常常会有将Vector进行扁平化的需求,即将二维数组转为一维数组。本文将介绍如何在C++中扁平化Vector或2D 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
,并依次输出。
如果要扁平化二维的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()
。