c++建立二维数组
时间: 2025-05-03 12:43:17 浏览: 45
### 创建和初始化二维数组的方法
在C++中,可以通过多种方式创建和初始化二维数组。以下是几种常见的方法:
#### 方法一:静态分配并逐行列举初始值
可以使用大括号 `{}` 来列举每一行的初始值。这种方式适用于编译期已知大小的数组。
```cpp
int array[3][4] = {
{0, 1, 2, 3}, // 初始化第1行
{4, 5, 6, 7}, // 初始化第2行
{8, 9, 10, 11} // 初始化第3行
};
```
如果省略部分元素,则这些未指定的元素会被默认初始化为零[^1]。
#### 方法二:动态内存分配
当数组大小未知或者需要运行时决定时,可以使用 `new` 运算符来动态分配二维数组的空间。
```cpp
#include <iostream>
const int rows = 3;
const int cols = 4;
int main() {
// 动态分配二维数组
int** array = new int*[rows];
for (int i = 0; i < rows; ++i) {
array[i] = new int[cols]{};
}
// 初始化数据
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
array[i][j] = i * cols + j;
}
}
// 打印数组内容
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
std::cout << array[i][j] << ' ';
}
std::cout << '\n';
}
// 清理资源
for (int i = 0; i < rows; ++i) {
delete[] array[i];
}
delete[] array;
return 0;
}
```
注意,在这种情况下,程序员有责任释放所分配的内存以防止泄漏[^2]。
#### 方法三:利用标准模板库(STL)
现代C++推荐使用容器类代替原始指针管理内存。对于二维结构来说,嵌套向量是一个不错的选择。
```cpp
#include <vector>
#include <iostream>
std::vector<std::vector<int>> createAndInitializeArray(int rowSize, int colSize) {
std::vector<std::vector<int>> result(rowSize, std::vector<int>(colSize));
for (size_t i = 0; i < rowSize; ++i){
for (size_t j = 0; j < colSize; ++j){
result[i][j] = static_cast<int>(i * colSize + j);
}
}
return result;
}
void displayVectorContent(const std::vector<std::vector<int>>& vec){
for(auto& row : vec){
for(auto elem : row){
std::cout << elem << " ";
}
std::cout << "\n";
}
}
int main(){
auto myVecArr = createAndInitializeArray(3,4);
displayVectorContent(myVecArr);
return 0;
}
```
这种方法不仅简化了代码逻辑还自动处理了内存回收问题[^3]。
---
阅读全文
相关推荐


















