创建动态二维数组

来源https://blog.csdn.net/guaiguaihenguai/article/details/78565049

法1

既然二维数组也可以称为矩阵,那么我们就可以给二维数组的每一行开辟一块空间,然后再用一块空间把这些空间的行存放和管理起来,这块空间显然就是一个指针数组,数组的每一个元素都是一个指向一个数组的地址。

 int **arr = NULL;
 int row = 5;//用于表示行数
 int col = 5;//用于表示列数
 arr = new int*[row];//开辟一块内存来存放每一行的地址
 for (int i = 0; i < row; i++)//分别为每一行开辟内存
     arr[i] = new int[col];

 

#include<bits/bits/stdc++.h>
using namespace std;
int main()
{
    
    int **arr=NULL;
    int row=5; int col=5;
    arr=new int*[row];
    for(int i=0;i<col;i++)
        arr[i]=new int[col];
    //int *arr;
    //arr= new int[5]; 
    
    return 0;
}

法2

利用vector来创建一个二维数组

上边说了二维数组也可以说是一个一维数组,它的每一个元素都是一个一维数组。而vector的底层就是一个数组,如果将vector的类型给个vector类型,就是一个二维数组了。

看代码:

int row = 6;
int col = 6;
vector<vector<int>> array(row);//创建一个有row行的二维数组arr
for (int i = 0; i < col; i++)
     array[i].resize(col);//设置每一行的元素个数,即列数

 

vector<vector<int>> dp(weight.size(), vector<int>(bagweight + 1, 0));

 

上一篇:IDEA(maven)创建springMVC项目(1)——基础环境搭建


下一篇:SpringMVC原理及实践