首先,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個...