21xrx.com
2024-11-22 10:21:15 Friday
登录
文章检索 我的文章 写文章
如何在C++中输入不定长度的二维数组
2023-06-22 13:39:44 深夜i     --     --
C++ 输入 不定长度 二维数组

在C++编程中,有时候需要输入不定长度的二维数组,在实际的编程过程中,需要动态地进行数组的大小调整,以适应不同的需求。本文将介绍如何在C++中输入不定长度的二维数组。

方法一:使用vector容器

在C++中,vector容器是一种动态数组,可以根据需要自动调整大小。可以使用vector容器来存储二维数组,从而避免手动分配内存空间的问题。以下是使用vector容器创建和输入二维数组的示例代码:


#include <iostream>

#include <vector>

using namespace std;

int main() {

  int n, m; //n表示行数,m表示列数

  vector<vector<int>> array; //定义一个二维数组

  cout << "请输入二维数组的行数和列数:";

  cin >> n >> m;

  array.resize(n, vector<int>(m)); //调整二维数组大小

  cout << "请输入二维数组的元素:";

  //循环输入二维数组的元素

  for(int i = 0; i < n; i++) {

    for(int j = 0; j < m; j++) {

      cin >> array[i][j];

    }

  }

  //输出二维数组的元素

  cout << "二维数组的元素为:" << endl;

  for(int i = 0; i < n; i++) {

    for(int j = 0; j < m; j++) {

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

    }

    cout << endl;

  }

  return 0;

}

方法二:使用new关键字动态分配内存空间

在C++中,可以使用new关键字动态分配内存空间,从而实现对不定长度的二维数组的输入。以下是使用new关键字动态分配内存空间创建和输入二维数组的示例代码:


#include <iostream>

using namespace std;

int main() {

  int n, m; //n表示行数,m表示列数

  cout << "请输入二维数组的行数和列数:";

  cin >> n >> m;

  int **array = new int*[n]; //动态分配n个指针数组

  //动态分配n*m个整型数据,并将n个指针数组指向这些数据

  for(int i = 0; i < n; i++) {

    array[i] = new int[m];

  }

  cout << "请输入二维数组的元素:";

  //循环输入二维数组的元素

  for(int i = 0; i < n; i++) {

    for(int j = 0; j < m; j++) {

      cin >> array[i][j];

    }

  }

  //输出二维数组的元素

  cout << "二维数组的元素为:" << endl;

  for(int i = 0; i < n; i++) {

    for(int j = 0; j < m; j++) {

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

    }

    cout << endl;

  }

  //释放动态分配的内存空间

  for(int i = 0; i < n; i++) {

    delete[] array[i];

  }

  delete[] array;

  return 0;

}

在使用动态分配内存空间时,需要记得在使用完毕后及时释放内存,避免内存泄漏的问题。

总结

无论是使用vector容器还是动态分配内存空间的方法,都可以实现在C++中输入不定长度的二维数组。使用vector容器可以避免手动分配内存空间的问题,使用new关键字动态分配内存空间则需要注意及时释放内存空间,以保证程序的高效和稳定性。

  
  

评论区

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