入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C++中二维数组总结

创建时间:2016-04-24 投稿人: 浏览次数:1054

最近编程需要研究了一下二维数组,网上这方面的资料蛮多了,汇总一下,欢迎补充!

关于二维数据的基本知识见这里:

C++二维数组讲解、二维数组的声明和初始化

关于二维数据的动态分配,以下博客讲述得比较清楚:

1、C++中二维数组new小结

2、二维数组的动态分配(new)、初始化(memset)和撤销(delete)

3、动态分配内存。。。

4、如何在C/C++中动态分配二维数组

举例:

//动态定义一维数组、二维数组、三维数组
#include<iostream>
#include<ctime>

using namespace std ;

int main()
{
	int hight , row , col ;
	register int i , j , k ;
	srand((unsigned)time(NULL)) ;

	cout<<"输入一维数组的行"<<endl;
	cin>>row ;
	//动态定义一维数组
	int *p1 ;
  	p1 = new int [row] ;
	//输入一维数组的值
	for( i = 0 ; i < row ; i ++ )
  		 p1[i] = rand () % 10 ;
	//输出一维数组
	for( i = 0 ; i < row ; i ++ )
   		cout<<p1[i] <<" " ;
	cout<<endl;
	//释放一维数组
	delete [] p1 ;

	cout<<"输入二维数组的行,列 :";
	cin>>row >>col ;
	//动态定义二维数组
	int **p2 ;
	p2 = new int*[row] ;
	for( i = 0 ; i < row ; i ++ )
	   p2[i] = new int[col] ;
	//输入二维数组的值
	for( i = 0 ; i < row ; i ++ )
 		for( j = 0 ; j < col ; j ++ )
   		 p2[i][j] = rand() % 10 ;
	//输出二维数组
  	 cout<<"输出二位数组:"<<endl;
	for( i = 0 ; i < row ; i ++ )
	{
 	  for( j = 0 ;j < col ; j ++ )
 	   cout<<p2[i][j]<<" " ;
  	 cout<<endl;
	}
  	  //释放二维数组
	for( i = 0 ; i < row ; i ++ )
 	   delete []p2[i] ;
	delete []p2 ;


	cout<<"输入三维数组高,行,列 : ";
	cin>>hight>>row >> col ;
	//动态定义三维数组:
	int *** p3 ;
	p3 = new int**[hight ] ;
	for( i = 0 ; i < hight ; i ++ )
        p3[i] = new int*[row] ;
    for( i = 0 ; i < hight ; i ++ )
        for( j = 0 ; j < row ; j ++ )
            p3[i][j] = new int[col] ;
    //输入三维数组值:
    for(i = 0 ; i < hight ; i ++ )
        for(j = 0 ; j < row ; j ++ )
            for( k = 0 ; k < col ; k ++)
                p3[i][j][k] = rand()%10 ;
    //输出三维数组:
    cout<<"输出三维数组"<<endl;
    for(i = 0 ; i < hight ; i ++ )
    {
        for( j = 0 ; j < row ; j ++ )
        {
            for( k = 0 ; k < col ; k ++ )
                cout<<p3[i][j][k]<<" " ;
            cout<<endl;
        }
        cout<<endl;
    }
     //释放三维数组
    for( i = 0 ; i < hight ; i ++ )
        for( j = 0 ; j < row ; j ++ )
            delete []p3[i][j] ;
    for( i = 0 ; i < hight ; i ++ )
        delete []p3[i] ;
    delete []p3 ;

    return 0 ;
}

结果如下:



声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。