C STL容器學習(一)

2021-07-23 07:55:12 字數 1413 閱讀 4568

容器:一些特定型別物件的集合

順序容器:vector、list、forward_list

vector:可變大小陣列,支援快速隨機訪問

list:雙向鍊錶,只支援雙向順序訪問

forward_list:單向鍊錶,只支援單向順序訪問

迭代器:迭代器(iterator)是一種物件,它能夠用來遍歷標準模板庫容器中的部分或全部元素,每個迭代器物件代表容器中的確定的位址。迭代器的本質就是乙個指標。

乙個迭代器範圍由一對迭代器表示:begin和end,begin指向容器中的第乙個元素,end指向尾元素之後的乙個位置。

容器定義和初始化:列表初始化

容器中元素的新增:push_back,push_front,insert

容器中元素的刪除:pop_front,pop_back,erase

向容器中新增元素或刪除元素可能會使指向容器元素的指標、引用或迭代器失效。

#include #include #include #include #include using namespace std;

int main()

;//names為list模板類的例項

list::iterator it;//iterator 為list容器的迭代器型別

for(it = names.begin();it!=names.end();it++)

/*可以將const char*元素轉換為string */

listfood = ;

vectorpeople = ;

forward_listwords(people.begin(),people.end());

/*assign可以實現容器的賦值*/

/*可以將const char*元素轉換為string */

names.assign(people.begin(),people.end());

/*swap操作交換兩個相同型別容器的內容*/

swap(food,names);

for(it = names.begin();it!=names.end();it++)

cout << "順序容器的操作" <> word;

names.push_back(word);

names.push_front(word);

}#endif

for(it = names.begin();it!=names.end();it++)

/**向容器中的特定位置新增元素**/

/**insert函式將元素插入到迭代器所指定的位置之前**/

names.insert(names.begin(),"nancy");

for(it = names.begin();it!=names.end();it++)

return 0;

}

C STL常用容器(一)

使用時需要包含標頭檔案 include 1.初始化vector vec 16 定義了已知長度16的vector vector vec 64,2 定義了初值為2長度64的vector vector vec a 用a向量來建立向量 vector vec a.begin i,a.begin j 定義了值為...

C STL常用容器 一

4 4 2019 4 50 15 pm 2 set 集合 3 string 開始時候引入 includeusing namespace std typename 可以是 int double char node vectorname vector陣列 其中 arrayname 0 arrayname...

C STL容器的學習 vector

簡單點來說vector就是乙個模板類,而且是連續的 list不是連續的 刪除中間的任意乙個元素,後面的元素都需要往前移動,但對於陣列來說,它可以擴容.vectorv1 最大容量,初始值 vetcorv1.push back i 向v1的尾部插入i vectorv1.預設v1為空,故不能賦值 vect...