C++ 创建动态二维数组

0. 预备

静态一维数组: Type p[4];

动态一维数组:Type *p = new Type [n]; (注意用完要 delete[] p;)

动态一维数组2: vector<Type> p(n);

1. 用new动态创建二维数组:

TYPE (*p)[N] = new TYPE [][N];

其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数可以不指定。p的类型是TYPE*[N],即指向一个有N列元素数组的指针。

还有一种方法,可以不指定数组的列数:

int **p;
p = new int*[n];    //注意,int*[m]表示一个有m个元素的指针数组
for (int i = 0; i < n; i++){
    p[i] = new int[m];
}

这里是将p作为一个指向指针的指针,它指向一个包含10个元素的指针数组,并且每个元素指向一个有5个元素的数组,这样就构建了一个n行m列的数组。


当数组使用完毕,释放空间的代码是:

for(int i = 0; i < n; i++){
    delete[] p[i];
}
 delete[] p;

2. 用vector创建二维数组:

 //注意下面这一行:vector<int后两个">"之间要有空格!否则在一些老的编译器中会被认为是重载">>"。 
 vector<vector<int> > p(m, vector<int>(n));  


发布了29 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u014730658/article/details/51900894