STL順序容器
阿新 • • 發佈:2020-07-04
部落格園的一篇關於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
下次再寫吧。