STL 提供了6大組件,彼此之間可以組合套用,這6大組件分別是:
容器,算法,迭代器,仿函數,適配器,空間配置器
簡單介紹:
容器:各種數據結構,入vector,list, deque, set, map等,用來存放數據,從實現角度來看, STL容器是一種 class template.
算法:各種常用的算法,如 sort, find, copy, for_each. 從實現的角度來看,stl算法是一種 function template.
迭代器:扮演了容器與算法之間的膠合劑,共有五種類型,從實現角度來講,迭代器是一種將 operator*, operator->, operator++, operator–等指針相關操作予以重載的class template,所有的STL容器都附帶有自己專屬的迭代器,只有容器的設計者才知道如何遍歷自己的元素,原生指針也是一種迭代器.
仿函數: 行為類似函數,可作為算法的某種策略,從實現角度看,仿函數是一種重載了operator()的class或者是 class template.
適配器:一種專門用來修飾容器或者仿函數或者迭代器接口的東西
空間配置器:負責空間的配置和管理,從實現角度看,配置器是一個實現了動態空間配置,空間管理,空間釋放的class template
STL 6大組件的交互關系:容器通過空間配置器取得數據存儲空間,算法通過迭代器存儲容器中的內容,仿函數可以協助算法完成不同的策略變化,適配器可以修飾仿函數。