您的位置:首页 > 编程语言 > C语言/C++

C++ 创建动态二维数组

2016-07-13 19:37 302 查看
0. 预备

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

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

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

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

TYPE (*p)
= new TYPE []
;

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

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

int **p;

p = new int*
;    //注意,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));  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: