C++中二维数组总结
最近编程需要研究了一下二维数组,网上这方面的资料蛮多了,汇总一下,欢迎补充!
关于二维数据的基本知识见这里:
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。
- 上一篇: C/C++中的标准库函数总结
- 下一篇: C++字母大小写转换方法