因為最近在準備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來初始化。可以使用初始化...