c vector物件初始化

2021-07-16 17:35:06 字數 1679 閱讀 1797

因為最近在準備c++,用到了vector stl,但是發現自己完全不太會用,所以上網查了一下一些常用的初始化方法(其實就是把vector當做乙個安全的動態陣列即可),其他使用方法基本類似於c的陣列,主要是初始化有些多元化,這裡詳細列舉一下。

下面**用到的兩個iter量宣告

vector

::iterator int_ite;

vector

::iterator string_ite;

//vectorv(n)形式,v包含n 個元素

vector

ivec1(10);

//vectorv(n,i)形式,v包含n 個值為 i 的元素

vector

ivec(10,0);

for(int_ite=ivec.begin ();int_ite!=ivec.end ();int_ite++)

cout

<<"ivec: "

<<*int_itevector

ivec1(ivec);

for(int_ite=ivec1.begin ();int_ite!=ivec1.end ();int_ite++)

cout

<<"ivec1: "

<<*int_ite《這裡ivec是乙個已有的vector,那麼這種初始化方式會拷貝乙份ivec,其為ivec1

//陣列初始化vector

int iarray=;

//count: iarray陣列個數

size_t count=sizeof(iarray)/sizeof(int);

//int陣列初始化 ivec3

vector

ivec3(iarray,iarray+count);

for(int_ite=ivec3.begin ();int_ite!=ivec3.end ();int_ite++)

cout

<<"ivec3: "

<<*int_itestring word=;

//s_count: word陣列個數

size_t s_count=sizeof(word)/sizeof(string);

//string陣列初始化 svec1

vector

svec1(word,word+s_count);

for(string_ite=svec1.begin ();string_ite!=svec1.end ();string_ite++)

cout

<<"svec1: "

<<*string_ite《這裡主要是注意vector初始化的第二個入參是陣列(指標)+陣列長度

應該就是指到陣列尾,然後把這段位址空間的全部拷貝進vector……

其實按照c++的定義來說,這個不算初始化……應該是賦值。。。

//用 back_inserter 函式

vector

ivec4; //空物件

fill_n(back_inserter(ivec4),10,3); //10個3 填充ivec4.

for(int_ite=ivec4.begin ();int_ite!=ivec4.end ();int_ite++)

cout

<<"ivec4: "

<<*int_ite<}

c vector初始化總結

對c primer上面vector的常用用法做歸納總結。4種初始化vector的方式 1 vectorv1 vector儲存型別為t的物件。預設建構函式,v1為空。2 vectorv2 v1 v2是v1的乙個副本。3 vectorv3 n,i v3包含n個值為i的元素。4 vectorv4 n v4...

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來初始化。可以使用初始化...