之前就有看過部分STL源碼剖析(作者:侯捷),可能是看的不夠細,思考的不夠多,時間長了,似乎全都忘了,所以今天晚上心血來潮,計劃花點時間在把關於STL的知識進行熟悉和學習。
此次學習計劃將每天所學進行梳理並把心得在博客中記錄,一是怕自己忘掉,回頭可以通過自己寫的博客快速回憶起來,好記性不如爛筆頭嗎,同時將學習過程中編寫的代碼上傳Github;二是啥,想不到了。等想到了再來補充吧。
學習STL就不得不知道他所包含的六大組件,它們分別是:
容器(containers):是一種class template,包含各種數據結構;
算法(algorithms):是一種function template,包含各種常用算法;
迭代器(iterators):是所謂的”泛型指針“,每一種容器都有自己的專屬迭代器,知道如何遍歷自己的元素;
仿函數(functors):是一種重載了operator()的class 或 class template,可以作爲算法的某種策略;
配接器(adapters):是一種用來修飾容器或仿函數或迭代器接口的東西;
配置器(allocators):是一個實現了動態空間配置、空間管理、空間釋放的class template,負責空間的配置和管理。
下圖展示了STL六大組件的交互關係:
參考書籍:《STL源碼剖析》侯捷