C++建立动态二维数组

原创 2013年09月05日 14:05:36

C++建立动态二维数组主要有两种方法:

1.使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组

              
           int **b=new int*[row];       //分配一个指针数组,将其首地址保存在b中                                                    
           for(i=0;i<row;i++)             //为指针数组的每个元素分配一个数组
               b[i]=new int[col];
          
        该方法定义的动态二维数组的释放需先释放指针数组的每个元素指向的数组,然后再释放该指针数组:
           for(i=0;i<row;i++)
           {
                 delete [col]b[i];
                 b[i]=NULL;
           }
           delete [row]b;
           b=NULL;
int _tmain(int argc, _TCHAR* argv[])
{
	int row,column;
	cin>>row>>column;

	//方法一
	//申请空间
	int ** a = new int *[row];
	for(int i = 0;i < row;i++)
		a[i] = new int[column];

	//使用空间
	for(int j = 0;j < row;j++)
		for(int k = 0;k< column;k++)
			a[j][k] = rand()%100;

	for(int j = 0;j < row;j++)
	{
		cout<<endl;
		for(int k = 0;k< column;k++)
		{
			a[j][k] = rand()%100;
			cout<<a[j][k]<<"     ";
		}
	}
		
	//释放空间
	for(int i = 0;i < row;i++)
	{
		delete a[i];
		a[i] = NULL;
	}
	delete [row]a;
	a = NULL;	

	return 0;
	
}
运行结果:

2.利用vector

int _tmain(int argc, _TCHAR* argv[])
{
	int row,column;
	cin>>row>>column;

	//方法二
	//申请空间
	vector<vector<int> > a(row,vector<int>(column));
	

	//使用空间
	for(int j = 0;j < row;j++)
		for(int k = 0;k< column;k++)
			a[j][k] = rand()%100;

	for(int j = 0;j < row;j++)
	{
		cout<<endl;
		for(int k = 0;k< column;k++)
		{
			a[j][k] = rand()%100;
			cout<<a[j][k]<<"     ";
		}
	}		
	
	return 0;
	
}

运行结果为:


C++语言基础

C++是一门高效而实用的程序设计语言,本课详细介绍C++语言中的封装、数据隐藏、继承、多态的实现,主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。课程继续关注学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。
  • 2015年03月01日 10:55

C++用new创建二维数组的方法

Test.
  • samuelcoulee
  • samuelcoulee
  • 2014-06-20 20:57:15
  • 2963

C++ 用new 动态创建多维数组

我们知道 char *a=new char[10];可以创建一个长度为10的数组。当把定值10换为一个变量时,我们的程序也没有任何问题,这时可成了名副其实的动态创建数组,如:int n=10;char...
  • gabby1985
  • gabby1985
  • 2006-05-11 18:13:00
  • 38782

【C++】Visual Studio中动态申请二维数组,new二维数组

今天考PAT要动态申请二维数组,当时没有new出来,然后用 vectorvector代替了。当时答案做对了,但是总是觉得很二,考试结束后赶紧补了一下。vs里动态申请二维数组,主要两种方法吧:1, 先声...
  • heroacool
  • heroacool
  • 2015-12-05 23:05:34
  • 1313

动态创建二维数组

方便查阅与理解。如有错误,欢迎指正
  • AdmireLinux
  • AdmireLinux
  • 2016-08-21 20:24:46
  • 730

二维动态数组的删除和创建

二维动态数组的删除和创建 c++版本: 动态创建以及删除一个二维数组float temp[n][m] int main(void) { int n = 10; int m = 5; fl...
  • u011484045
  • u011484045
  • 2015-09-24 13:54:20
  • 1185

c++动态创建二维数组

  • 2015年03月13日 22:20
  • 14KB
  • 下载

C++中如何正确的开辟一个动态的二维数组

如何定义一个二级指针,看似每个有点C语言基础的人觉得自己都可以很容易完成,但要正确的完成并且说的明白其中道理不见得就那么多。正确的理解数组指针和指针数组是关键。...
  • yc2zgh1314
  • yc2zgh1314
  • 2016-05-18 23:53:22
  • 9544

C++:动态创建删除二维数组

今天看《数据结构、算法与应用C++语言描述》(机械工业出版社)的时候看到的,但是书上是有错误的。#include using namespace std;template bool make2dArr...
  • hengbao4
  • hengbao4
  • 2016-11-18 22:09:08
  • 1077

c++ 动态创建二维数组

为了做一个东西需要用到动态创建二维数组,特此记录. #include #include "time.h" using namespace std; int main() { srand...
  • qq369846642
  • qq369846642
  • 2015-07-08 18:04:30
  • 785
收藏助手
不良信息举报
您举报文章:C++建立动态二维数组
举报原因:
原因补充:

(最多只允许输入30个字)