vector递归创建多维数组
时间: 2023-08-20 09:04:06 浏览: 111
在 C++ 中,可以使用 vector 嵌套来递归创建多维数组。下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
// 递归创建多维数组
template<typename T>
vector<T> createArray(int n) {
if (n == 1) {
return vector<T>(n);
} else {
vector<vector<T>> res(n, vector<T>());
for (int i = 0; i < n; ++i) {
res[i] = createArray<T>(n - 1);
}
return res;
}
}
int main() {
// 创建一个 2x3 的二维数组
auto arr2d = createArray<int>(2);
arr2d[0].resize(3);
arr2d[1].resize(3);
arr2d[0][0] = 1;
arr2d[0][1] = 2;
arr2d[0][2] = 3;
arr2d[1][0] = 4;
arr2d[1][1] = 5;
arr2d[1][2] = 6;
// 输出二维数组
for (int i = 0; i < arr2d.size(); ++i) {
for (int j = 0; j < arr2d[i].size(); ++j) {
cout << arr2d[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
在上面的代码中,`createArray` 函数使用模板来支持创建不同类型的数组,`n` 表示数组的维度大小。在函数内部,如果 `n` 等于 1,说明是一维数组,直接创建并返回一个大小为 `n` 的 vector。否则,先创建一个大小为 `n` 的 vector,然后使用递归调用 `createArray` 函数来创建每个元素,最终返回这个 vector。
在主函数中,我们使用 `createArray` 函数来创建一个 2x3 的二维数组,并且初始化数组中的元素。最后,使用两个 for 循环来输出二维数组中的元素。
阅读全文