【C++学习】创建二维动态数组

1.指针 

创建二维动态数组_牛客题霸_牛客网 (nowcoder.com)

 使用指针的指针

使用指针的指针可以很方便地创建动态的二维数组,其关键在于使用两层指针进行分配。

以下是一个动态创建nm列的二维数组的示例代码:

int **arr = new int*[n];  // 创建一个指针数组,每个指针可以指向一维数组
for(int i=0; i

在使用完这个二维数组后,需要对所有分配的内存进行释放,代码如下:

for(int i=0;i

2.vector数组

使用 C++ 的 vector 可以更方便地动态创建二维数组,减少了手动释放内存的麻烦。

以下是创建 n 行 m 列的二维数组的示例代码:

#include 
#include
using namespace std;

int n = 3, m = 4;  // 定义行和列

vector> arr(n, vector(m, 0));  // 创建二维数组,初始化所有元素为0

这里了解一下vector的构造函数

【C++学习】创建二维动态数组_第1张图片

在这个示例代码中,一个 vector> 数据类型的对象 arr 被创建了出来,并且它的大小是 n 行 m 列。注意 vector 对象的大小是通过其构造函数来确定的。

与前面介绍的方法不同,创建二维 vector 不需要显式调用 new,也不需要手动释放内存。vector 对象将在其作用域结束时自动销毁并释放内存。

访问二维 vector 数组的元素时,可以使用如下代码:

arr[i][j] = 1;  // 给arr[i][j]赋值为1

同样地,vector 对象的大小是由其构造函数所确定的。如果要向其添加新元素,可以使用如下代码:

for (int i = 0; i < n; ++i)
{
    for (int j = 0; j < m; ++j)
    {
        arr[i][j] = i + j;
    }
}

至此,我们完成了动态创建一个二维 vector 数组,并初始化所有元素为0。由于 vector 使用内存效率较低,因此在处理大量数据的情况下,手动动态分配内存可能更加高效。

你可能感兴趣的:(c++学习,学习,算法)