C vector 的初始化

2021-09-28 22:17:20 字數 1482 閱讀 2083

最近再刷leetcode,快一年沒用過c++,很多語言特性需要做個筆記。

vector v vectorv(n) vectorv(n,m)

預設初始化,vector為空, size為0,表明容器中沒有元素,而且 capacity 也返回 0,意味著還沒有分配記憶體空間。這種初始化方式適用於元素個數未知,需要在程式中動態push_back()新增的情況。

這裡也可以用v.resize(n)等價於vectorv(n), 或者v.resize(n,m)等價於vectorv(n,m)來初始化。

前者是使用n個0來初始化,後者是使用n個m來初始化。

vector < int > v = ;

可以使用初始化陣列的方式來初始化vector,如例子所示,此時v.size() == 5

如果這時候使用v.resize(3),將會丟棄最後的4和5。

vector < int > v(v0);

使用另外乙個陣列來初始化v,注意,這裡的v0也必須是vector

也可以寫作vector < int > v = v0;

vector < int > v(*p, *q);

使用另外乙個陣列的指標來初始化v,這裡即可以使用vector的指標,也可以使用普通陣列的指標。 見例:

int a[3] = ;

vectorv = ;

vectorv2(a, a+2);

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

cout << v2[i] << " "; //輸出為1 2

cout << endl;

vectorv3(v.begin()+1, v.end() - 1);

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

cout << v3[i] << " "; //輸出為2 3

vector< vector > v = ,,,,};

二維的vector同樣也可以直接用值進行初始化。

vector < vector < int > > v

和一維陣列一樣,這裡的v的size是0。

可以先v.resize(n)來初始化乙個長度為n的二維陣列,然後使用乙個for迴圈。

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

v[i].resize(n);

這樣v的大小就是n*n。

也可以v.resize(n, v0),使用n個一維陣列來初始化乙個二維陣列。

這裡v0可以直接使用vector(n,m)來表示,比如:

vector> v(3, vector(4,1));
vector < vector < int > > v(n,v0)

和上面v.resize()類似。

C vector的初始化

因為編演算法的時候經常用的stl函式庫的vector,每次初始化的時候都要搜一下,這次自己整理一下。這時候v的size為0,如果直接進行訪問 v i 會報錯。這裡可以使用 v.resize n 或者v.resize n,m 來初始化 前者是使用n個0來初始化,後者是使用n個m來初始化。可以使用初始化...

C vector的初始化

因為編演算法的時候經常用的stl函式庫的vector,每次初始化的時候都要搜一下,這次自己整理一下。這時候v的size為0,如果直接進行訪問 v i 會報錯。這裡可以使用 v.resize n 或者v.resize n,m 來初始化 前者是使用n個0來初始化,後者是使用n個m來初始化。可以使用初始化...

C vector的初始化

因為編演算法的時候經常用的stl函式庫的vector,每次初始化的時候都要搜一下,這次自己整理一下。這時候v的size為0,如果直接進行訪問 v i 會報錯。這裡可以使用 v.resize n 或者v.resize n,m 來初始化 前者是使用n個0來初始化,後者是使用n個m來初始化。可以使用初始化...