STL標準庫的總結

一、STL基礎

1、STL是爲了提高代碼的可重複使用而產生,提供了一個標準的模板庫,可供直接調用。

2、爲了建立數據結構和算法的一套標準,而誕生了STL

3、STL從廣義上可以分爲:容器(container)、算法(algorithm)、迭代器(iterator)

4、容器和算法之間通過迭代器進行連接。

5、STL幾乎所有的代碼都採用了模板類或者模板函數。


二、STL六大件

STL大體分爲六大組件,分別是:容器、算法、迭代器、仿函數、適配器(配接器)、空間配置器

1、容器:各種數據結構,如 vector、list、deque、set、map 等,用來存放數據。

2、算法:各種常用的算法,如 sort、find、copy、for_each等。

3、迭代器:扮演容器與算法之間的膠合劑。

4、仿函數:行爲類似函數、可作爲算法的某種策略。

5、適配器:一種用來修飾容器或者仿函數或者迭代器接口的東西

6、空間配置器:負責空間的配置與管理

(1)、容器
在這裏插入圖片描述
(2)、算法
在這裏插入圖片描述
(3)、迭代器

在這裏插入圖片描述


三、STL組成

1、順序容器
  • vector:可變數組
  • deque:雙端隊列
  • list:雙向鏈表
  • forward_list:單向鏈表
  • array:固定數組大小(C++11)
  • sring:字符串
2、適配器
  • queue:單向隊列
  • stack:棧
  • priority_queue:擁有優先級的隊列
3、泛型算法

標準庫並未給每個容器添加了大量的功能,而是提供了一組算法,這些算法中的大多數都是獨立於特定容器的,它們可以用於不同類型的容器和不同類型的元素。
大多數容器都是定義在<algorithm>頭文件中的,通過迭代器來與容器之間建立聯繫。對容器中的元素進行操作。常用的泛型算法總結歸納

4、關聯容器

關聯容器都支持高效的關鍵字查找和訪問。主要的關聯容器是:mapset,並由此一共衍生了8個關聯容器。

  • map:關聯數組,保存鍵值對 key-value
  • set:關鍵字值
  • multimap:可重複出現
  • multiset:可重複出現
  • unordered_map:哈希函數組織的無序map
  • unordered_set:哈希函數組織的無需set
  • unordered_multimap:無序可重複map
  • unordered_multiset:無序可重複set
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章