c++创建动态二维数组
时间: 2023-09-08 22:11:00 浏览: 148
在 C++ 中创建动态二维数组,可以使用指针的指针(也叫双指针)来实现。下面是一个示例代码:
```c++
int rows = 3;
int cols = 4;
// 动态分配二维数组
int** arr = new int*[rows];
for(int i = 0; i < rows; i++) {
arr[i] = new int[cols];
}
// 给数组赋值
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
arr[i][j] = i * j;
}
}
// 访问数组元素
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
// 释放内存
for(int i = 0; i < rows; i++) {
delete[] arr[i];
}
delete[] arr;
```
在这个示例中,我们先定义了行数和列数,然后使用 `new` 运算符动态分配了一个指针数组 `arr`,其中每个元素都是一个指向整型数组的指针。接着,我们使用两个嵌套的循环遍历数组元素,给它们赋值,并输出数组内容。最后,我们使用 `delete` 运算符释放了分配的内存。
相关问题
c++vector二维数组
C++中的vector是一个动态数组容器,可以方便地进行元素的插入、删除和访问。二维数组可以通过vector嵌套来实现。
下面是使用vector实现二维数组的示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
// 创建一个二维数组,大小为3行4列
std::vector<std::vector<int>> matrix(3, std::vector<int>(4));
// 给二维数组赋值
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
matrix[i][j] = i * matrix[i].size() + j;
}
}
// 输出二维数组的值
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
```
上述代码中,我们首先创建了一个大小为3行4列的二维数组`matrix`,其中每个元素都是int类型。然后使用两层循环给二维数组赋值,并输出二维数组的值。
c++二维数组怎么传入
在 C++ 中,可以通过将二维数组作为函数参数来传递它。传递二维数组的常见方法有两种:一种是以指针形式来传递,另一种是以引用形式来传递。
以指针形式传递二维数组的语法如下:
```c++
void func(int arr[][n], int row) {
// 函数体
}
```
其中 `arr` 是一个指向整型数组的指针,`n` 是二维数组的列数,`row` 是二维数组的行数。在函数内部使用数组元素时,可以使用下标运算符 `[]` 来访问数组元素,例如 `arr[i][j]`。
以引用形式传递二维数组的语法如下:
```c++
void func(int (&arr)[row][n]) {
// 函数体
}
```
其中 `arr` 是一个对二维数组的引用,`n` 是二维数组的列数,`row` 是二维数组的行数。在函数内部使用数组元素时,也可以使用下标运算符 `[]` 来访问数组元素,例如 `arr[i][j]`。
阅读全文