vector 處理二維陣列

2021-08-21 21:15:17 字數 1191 閱讀 9988

首先,vector相較於陣列具有很多優點,這些優點也是我們通常優先使用vector而不是陣列的原因。

1.陣列 一經建立,陣列長度固定,不能改變,如果想更改陣列長度,只能建立乙個更大的新陣列,

然後把原陣列的所有元素複製到新陣列的儲存空間中去。

2.陣列不提供獲取其容量大小size操作。

3.陣列不提供自動新增元素push_back操作。

4.與使用vector型別的程式相比,使用內建陣列的程式更容易出錯,且難以除錯。

5.不允許陣列直接複製和賦值

接下來是 vector二維陣列的使用和建立

c++的template引數是可以巢狀定義的

vector> array2(3);
array2可以儲存3個向量,向量的長度是可以改變的。array2[i]返回的是第i個向量。同理,array2[i][j]返回的是第i個向量中的第j個元素。

注意:第乙個》後面一定要有個空格否則就會出現報錯。

[error] '>>' should be '> >' within a nested template argument list

3行x列

可以使用array2[i].resize() 函式對 i行進行指定元素個數

for(int i=0;i<3;i++)array2[i].resize(5);
上述**就定義了乙個3x5的陣列。3行5列  h=3,w=5

同樣。熟悉的push_back()函式也可以進行資料的輸入

array2[1].push_back(9);

貼乙個hackerrank的習題**。

#includeusing namespace std;

#includeint main()

}// do the queries

for (int i=0;i> x >> y;

cout << a[x][y] << endl;

} return 0;

}

vector> a(h);  //生成乙個h行w列的二維陣列

for(int i=0;i>d;

a[i].push_back(d);

} }//不需要對每一行進行resize(),直接pushback即可

vector 二維陣列

1052 賣個萌 20分 萌萌噠表情符號通常由 手 眼 口 三個主要部分組成。簡單起見,我們假設乙個表情符號是按下列格式輸出的 左手 左眼 口 右眼 右手 現給出可選用的符號集合,請你按使用者的要求輸出表情。輸入首先在前三行順序對應給出手 眼 口的可選符號集。每個符號括在一對方括號內。題目保證每個集...

vector 二維陣列

int p p newint m 注意,int m 表示乙個有m個元素的指標陣列 p new int 8 表示分配乙個int空間並初始化為8 外層 vector int a 內層 a.push back 1 a.push back 2 a.push back 3 vector int b b.pus...

vector 陣列 二維陣列

c 中可以通過容器來建陣列,二維陣列 include stdafx.h include include using namespace std int main array.resize 2 二維陣列預設m行 array 1 resize 4 array 1 resize n 二維陣列第2行預設n個...