STL源碼初步接觸
STL = Standard Template Library,直譯過來是:標(biāo)準(zhǔn)模板庫,是惠普實驗室開發(fā)的一系列軟件的統(tǒng)稱。從根本上說,STL是一些“容器”的集合,這些“容器”有l(wèi)ist,vector,set,map等,STL也是算法和其他一些組件的集合。這里的“容器”和算法的集合指的是世界上很多聰明人很多年的杰作。STL的目的是標(biāo)準(zhǔn)化組件,這樣就不用重新開發(fā),可以使用現(xiàn)成的組件。STL現(xiàn)在是C++的一部分,因此不用額外安裝什么。STL所實現(xiàn)的,是依據(jù)泛型思維架設(shè)起來的一個概念結(jié)構(gòu)。說了這么多還是不知道STL是個什么東東,今天只是初接觸這個概念,感覺很高深的樣子,先這樣理解吧,STL就是一個倉庫,一個存放各種工具的倉庫。它的工具分為六大類(六大組件) :
容器(containers):各種數(shù)據(jù)結(jié)構(gòu),如Vector,list,deque,set,map,用來存放底層數(shù)據(jù)。一般有序列式(下面要寫的Vector就是個這種)、關(guān)聯(lián)式等。
算法(algorithms):各種常用算法如:sort,search,copy,erase……
迭代器(iterator):扮演容器與算法之間的膠合劑,是所謂的“泛型指針”,共5種類型,以及他們的衍生變化。所有的STL容器都附帶有自己專屬的迭代器。原生指針也是一種迭代器。
仿函數(shù)(functor):行為類似函數(shù)可作為算法的某種策略。一般函數(shù)指針可認(rèn)為是俠義的仿函數(shù)。
配接器(adapter):一種用來修飾容器,或仿函數(shù),或迭代器接口的東西。
配置器(allocators)負(fù)責(zé)空間配置與管理。配置器是一個實現(xiàn)了動態(tài)空間配置、空間管理、空間釋放的class template。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26