二維vector的建立 賦值與輸出

2021-08-02 15:28:20 字數 905 閱讀 2730

1、定義乙個二維vector

注意空格

vector

>matrix1(2, vector

(2));//2行2列

vector

>matrix2(2, vector

(3));//2行3列

2、給二維vector賦值

賦值方法1:把定義賦值好的陣列直接賦值給vector

int a[2][2] = ;

for (int i = 0; i < 2; i++)

for (int

j = 0; j

< 2; j++)

matrix1[i][j] = a[i][j];

賦值方法2:用push_back的方法

int b[2][3] = ;

for (int i = 0; i<2; i++)

copy(tmp.begin(), tmp.end(), matrix2[i].begin());//因為定義matrix2的時候預設賦了初值為0,所以這裡不能再用push_back,只能copy

}

注:copy()函式,把第乙個引數和第二個引數範圍內的資料複製到以第三個引數開始的陣列中。

3、輸出

ostream_iteratoros(cout, " ");

for (int i = 0; i < matrix1.size(); i++)

注意上述三段程式需要用到的標頭檔案

#include

#include

#include

#include

#include

二維vector 的建立

在很多時候,類中二維陣列的維度往往無法提前知道,因此需要動態地分配空間。使用new運算子是其中的乙個解決方案,但是操作不當往往會造成記憶體溢位 洩漏。使用stl的vector可以避免這個麻煩。例如,我在乙個類中定義了乙個資料成員a為二維int型別vector cpp view plain copy ...

為二維vector進行賦值

在練習過程中遇到了使用二維vector的情況,不想用下標訪問的方式,迭代器方式摸索了好長時間,問了學長才知道。我犯了以下錯誤 1 沒有指定vector的大小,就進行了下標和迭代器訪問 2 通過第一層的迭代器it vv訪問第二層的時候,用的 訪問而不是 訪問,迭代器的使用和指標一樣,這一點忘記了。首先...

動態建立二維vector陣列

二維vector vector ivec m vector n m n的二維vector 動態建立m n的二維vector 方法一 vector ivec ivec.resize m for int i 0 i ivec ivec.resize m,vector n 動態建立二維陣列a m n c語...