STL (standard template libaray - 標準模板庫):是 C++ 標準庫的重要組成部分,不僅是一個可復用的組件庫,而且是一個包羅數據結構與演算法的軟體框架。 通俗來說:STL就是將常見的數據結構(例如 順序表,鏈表,棧,隊列,二叉樹,哈希...)以模板的形式進行封裝,使用時, ...
STL (standard template libaray - 標準模板庫):是 C++ 標準庫的重要組成部分,不僅是一個可復用的組件庫,而且是一個包羅數據結構與演算法的軟體框架。
通俗來說:STL就是將常見的數據結構(例如 順序表,鏈表,棧,隊列,二叉樹,哈希...)以模板的形式進行封裝,使用時,不用我們人為再去寫,可以直接調用。並且包含常見的通用的泛型演算法(一些常規的演算法也不用自己實現,可以直接調用)
通用的泛型演算法兩大特性:
通用的:對於任意類型的數據結構都可以處理。(線性表,鏈表,二叉樹....)
模板實現:以模板的方式實現,對於任意數據類型都可以處理。(int/double/short/long.....)
一標準容器
1:順序容器(底層數據結構都是順序表,數組,鏈表,棧隊列)
vector 向量容器
deque 雙端隊列容器
list 鏈表
2:容器適配器
stack 棧
queue 隊列
priority—queue 優先隊列
3:關聯容器(基於高級數據結構)
無序關聯容器 (基於鏈式哈希表) 增刪查 O(1)
unordered_set
unordered_multiset
unordered_map
unorder_multimap
有序關聯容器(基於紅黑樹)增刪查 O(log2n)
set
multiset
map
multimap
二:近容器
數組 string bitset(位容器)
迭代器
iterator和const_iterator
reverse_iterator 和const_reverse_iterator
函數對象(類似C的函數指針)
greater,less
泛型演算法
sort,find,find_if bindary_search,for_each