C++中,知道n,m动态开辟一个n*m的二维数组
时间: 2024-09-08 14:01:19 浏览: 44
在C++中,动态开辟一个大小为n * m的二维数组通常通过`std::vector<std::vector<T>>`来实现,其中T代表数组元素的数据类型。这是因为`std::vector`是一个动态大小的容器,可以方便地管理动态内存。
下面是一个简单的示例:
```cpp
#include <vector>
int main() {
int n = 5; // 行数
int m = 4; // 列数
std::vector<std::vector<int>> dynamicArray(n, std::vector<int>(m)); // 动态创建n行m列的整型数组
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
dynamicArray[i][j] = i * m + j; // 初始化每个元素的值
}
}
// 现在你可以像操作普通数组一样操作dynamicArray
for (const auto &row : dynamicArray) {
for (int elem : row) {
std::cout << elem << " ";
}
std::cout << "\n";
}
return 0;
}
```
在这个例子中,我们首先初始化了一个大小为n的内部向量,然后为每个内部向量分配了m个元素。这样就得到了一个n * m的动态二维数组。
阅读全文