1. 程式人生 > 其它 >建立動態二維陣列

建立動態二維陣列

來源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));

本文來自部落格園,作者:firgk,部分內容轉載他人的部落格,時間原因沒有註明原文連結,侵權請聯絡我。

“隨筆”板塊僅僅用於個人記憶記錄和他人蔘考,質量較低,“文章”板塊用於記錄個人理解發現認識