21xrx.com
2025-03-22 09:32:33 Saturday
文章检索 我的文章 写文章
如何在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关键字动态分配内存空间则需要注意及时释放内存空间,以保证程序的高效和稳定性。

  
  

评论区