1. 程式人生 > 實用技巧 >STL順序容器

STL順序容器

部落格園的一篇關於vector原始碼的文章,可以更加深入的理解一下vector:STL原始碼剖析---vector

STL容器包括順序式容器和關聯式容器,主要介紹一下順序式容器(vector、list、deque、queue、stack);

vector:其實可以就簡單地理解為一個動態陣列,可以從末尾直接新增元素,能改變陣列大小。(參考一下百度百科定義:vector

vector舉例:

 1 vector<int>a;            // 預設初始化;
 2 vector<int>a(50);        // 陣列a有50個為0的元素;
 3 vector<int
>a(10,7); // 10個為7的元素; 4 vector<int>b(a); // 用a定義b; 5 6 struct Point { 7 int x; 8 int y; 9 }; 10 vector<Point>a; // 結構體型別陣列

主要函式:

 1 push_back();       // 在尾部新增元素;
 2 size();            // 元素個數;
 3 empty();           // 是否為空;
 4 insert();          // 插入;
 5 pop_back();        //
刪除末尾元素; 6 erase(); // 刪除; 7 clear(); // 清空; 8 sort(); // 排序; 9 sort(start, end, cmp) 10 // start 排序陣列的起始地址; 11 // end 排序陣列結束地址的下一位; 12 // cmp 排序的方法,預設為升序;

需要詳細理解完全可以看上面連結的原始碼,別人的文章也寫得更好,可以詳細琢磨,更好的體會vector;貼一以前寫過的:用結構和STL常用演算法實現對學生成績的排序和查詢(vector)

list:list是雙向迴圈連結串列,每一個元素都可以直接訪問前面一個元素和後面一個元素。實際上list的使用和vector的使用方法差不多。list適用於插入和刪除頻繁,隨機訪問較少的情況,vector適用於插入和刪除較少,隨機訪問多的情況。

關於list的舉例我還是老實的做一個傳送門算了:https://blog.csdn.net/xiaoquantouer/article/details/70339869

下次再寫吧。