21xrx.com
2024-11-05 22:02:36 Tuesday
登录
文章检索 我的文章 写文章
C++中的n维动态数组实现
2023-07-13 10:42:53 深夜i     --     --
C++ n维 动态数组 实现

C++中的n维动态数组是指可以根据需要在程序运行时创建不同维度的数组。在本文中,我们将介绍如何实现n维动态数组。

C++中使用了vector和数组指针来实现n维动态数组。vector是C++中的标准容器之一,它可以自动调整大小以适应存储元素的需求。使用vector实现n维数组的优点是容易处理不同维度和不同长度的数组。下面是使用vector实现二维数组的示例代码。


#include <iostream>

#include <vector>

using namespace std;

int main()

{

  int rows = 3;

  int cols = 2;

  vector<vector<int> > array2D(rows, vector<int>(cols,0));

  array2D[0][0] = 1;

  array2D[0][1] = 2;

  array2D[1][0] = 3;

  array2D[1][1] = 4;

  array2D[2][0] = 5;

  array2D[2][1] = 6;

  for(int i = 0; i < rows; i++)

  {

    for(int j = 0; j < cols; j++)

      cout << array2D[i][j] << " ";

    cout << endl;

  }

  return 0;

}

在上面的代码中,我们使用vector和内嵌vector来创建二维数组。首先,我们设置了rows和cols的值,这代表了二维数组的行和列。接着,我们使用vector的构造函数创建一个包含rows个子向量的vector对象,并且每个子向量都包含cols个整型元素,初始值都设置为0。

在代码的最后一部分,我们使用双重循环来打印数组中的元素。

除了vector,数组指针也可以用来实现n维动态数组。数组指针是指一个指针,它可以指向一个数组或者一个数组的元素。通过使用数组指针,我们可以有效地创建多维数组并访问它们的元素。以下是一个使用数组指针实现二维数组的示例代码。


#include <iostream>

using namespace std;

int main()

{

  int rows = 3;

  int cols = 2;

  int **array2D;

  array2D = new int*[rows];

  for(int i = 0; i < rows; i++)

   array2D[i] = new int[cols];

  array2D[0][0] = 1;

  array2D[0][1] = 2;

  array2D[1][0] = 3;

  array2D[1][1] = 4;

  array2D[2][0] = 5;

  array2D[2][1] = 6;

  for(int i = 0; i < rows; i++)

  {

   for(int j = 0; j < cols; j++)

     cout << array2D[i][j] << " ";

   cout << endl;

  }

  for(int i = 0; i < rows; i++)

   delete[] array2D[i];

  delete[] array2D;

  return 0;

}

在这段代码中,我们使用指向指针的指针来创建一个二维数组。首先,我们创建了一个名为array2D的指向整型指针的指针,并为它分配了一个初始大小为rows的一维指针数组。

接着,我们用一个for循环为每个一维数组分配cols个元素。数组指针的每一维都可以使用指针的指针来寻址。

在最后一部分,我们使用双重循环来打印数组中的元素。最后,我们使用两个for循环释放数组指针所占用的所有内存。

总结:

- 在C++中,可以使用vector和数组指针来实现n维动态数组。

- 使用vector的优点是容易处理不同维度和不同长度的数组。

- 使用数组指针的优点是可以有效地创建多维数组并访问它们的元素。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复