>STL(Standard Template Library)是C++標(biāo)準(zhǔn)庫的最重要的組成部分,STL(標(biāo)準(zhǔn)模板庫)不僅是一個(gè)可復(fù)用的組件庫,而且是一個(gè)包羅算法和數(shù)據(jù)結(jié)構(gòu)的軟件..."/>
您好,登錄后才能下訂單哦!
基本概念>>
STL(Standard Template Library)是C++標(biāo)準(zhǔn)庫的最重要的組成部分,STL(標(biāo)準(zhǔn)模板庫)不僅是一個(gè)可復(fù)用的組件庫,而且是一個(gè)包羅算法和數(shù)據(jù)結(jié)構(gòu)的軟件框架。
版本介紹>>
原始版本-Alexander Stepanov、Meng Lee在惠普實(shí)驗(yàn)室完成原始版本,本著開源精神,他們聲明允許任何人任意運(yùn)用、拷貝、修改、 傳播、商業(yè)使用這些代碼,無需付費(fèi)。唯一的條件就是也需要向原始版本一樣做開源聲明。
1. HP版本-也是所有STL的始祖
2. PJ版本-由P.J.Plauger開發(fā)--Windows-VS
3. RW版本-由Rouge Wave公司開發(fā)
4. SGI版本-有Silicon Graphics Systems, Inc公司開發(fā)-Linux
由于我學(xué)習(xí)時(shí)主要參考的是侯捷老師的《STL源碼剖析》一書,所以博主重點(diǎn)談SGI版本,GCC用的也是此版本~
STL六大組件>>
1.容器( containers)——各種資料結(jié)構(gòu),如vector、list、deque、set、map等。
2.算法(algorithm)——各種常用算法,如sort、search、erase等。
3.迭代器( iterators)——扮演容器與算法之間的膠合劑。
4.仿函數(shù)(functors)——行為類似函數(shù),可作為算法的某種策略。
5.配接器(adapters)——用來修飾容器或仿函數(shù)或迭代器接口的東西。
6.配置器(allocators)——負(fù)責(zé)空間配置與管理。
從上述圖片可以看出六大組件之間的關(guān)系如下:容器從配置器那里取得相應(yīng)的數(shù)據(jù)存儲(chǔ)空間,算法通過迭代器存取容器的內(nèi)容,仿函數(shù)可以協(xié)助算法完成不同的策略變化,配接器可以修飾或套接仿函數(shù)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。