C++中如何建立动态二维数组
时间: 2024-11-25 14:17:51 浏览: 20
在 C++ 中,你可以使用 `std::vector` 或 `std::array` 结合模板来创建动态二维数组。这里分别介绍这两种方式:
1. 使用 `std::vector`:
```cpp
// 定义二维向量
std::vector<std::vector<int>> dynamicArray; // 默认初始为空
// 如果需要指定大小,可以这样做
int rows = 3, cols = 4;
dynamicArray.resize(rows);
for (int i = 0; i < rows; ++i) {
dynamicArray[i].resize(cols); // 内部也是动态分配的空间
}
// 后续可以根据需要添加元素
dynamicArray[0][0] = 1;
```
2. 使用 `std::array`:
`std::array` 只支持固定大小,如果需要动态调整大小,你需要配合指针或动态内存管理:
```cpp
// 定义动态数组(注意这只是数组引用,不是真正的二维数组)
std::array<std::array<int, 4>, 3> dynamicArray;
// 但是可以通过指针间接操作 "模拟" 二维数组
int** arr = new int*[rows];
for (int i = 0; i < rows; ++i) {
arr[i] = new int[cols]; // 动态分配空间
}
// 之后的操作类似
arr[0][0] = 1;
// 注意,记得在不再使用时手动释放内存
for (int i = 0; i < rows; ++i) {
delete[] arr[i];
}
delete[] arr;
```
注意:在实际项目中,推荐使用 `std::vector` 因为它的灵活性更高,更易于管理。
阅读全文