柚子快報(bào)邀請(qǐng)碼778899分享:c++ STL相關(guān)簡(jiǎn)介
柚子快報(bào)邀請(qǐng)碼778899分享:c++ STL相關(guān)簡(jiǎn)介
string
看到這個(gè)詞,相信大家一定都很好奇什么是string,它有什么作用呢?今天,就讓我們一起來(lái)了解一下關(guān)于string的簡(jiǎn)介吧~
目錄
string
1. 什么是STL
2. STL的版本
3. STL的六大組件
4. STL的重要性
5. 如何學(xué)習(xí)STL
6.STL的缺陷
1. 什么是STL
STL(standard template libaray-標(biāo)準(zhǔn)模板庫(kù)):是C++標(biāo)準(zhǔn)庫(kù)的重要組成部分,不僅是一個(gè)可復(fù)用的組件庫(kù),而且是一個(gè)包羅數(shù)據(jù)結(jié)構(gòu)與算法的軟件框架。
2. STL的版本
原始版本
Alexander Stepanov、Meng Lee 在惠普實(shí)驗(yàn)室完成的原始版本,本著開(kāi)源精神,他們聲明允許任何人任意 運(yùn)用、拷貝、修改、傳播、商業(yè)使用這些代碼,無(wú)需付費(fèi)。唯一的條件就是也需要向原始版本一樣做開(kāi)源使 用。
HP 版本
--所有STL實(shí)現(xiàn)版本的始祖。
P. J. 版本
由P. J. Plauger開(kāi)發(fā),繼承自HP版本,被Windows Visual C++采用,不能公開(kāi)或修改,缺陷:可讀性比較低, 符號(hào)命名比較怪異。
RW版本
由Rouge Wage公司開(kāi)發(fā),繼承自HP版本,被C+ + Builder 采用,不能公開(kāi)或修改,可讀性一般。
SGI版本
由Silicon Graphics Computer Systems,Inc公司開(kāi)發(fā),繼承自HP版本。被GCC(Linux)采用,可移植性好, 可公開(kāi)、修改甚至販賣(mài),從命名風(fēng)格和編程風(fēng)格上看,閱讀性非常高。(我們主要就這個(gè)版本進(jìn)行參考!?。?/p>
3. STL的六大組件
主要由仿函數(shù),算法,迭代器,空間配置器,容器,配接器構(gòu)成:
4. STL的重要性
SLT在筆試與面試中占據(jù)著舉足輕重的地位,是我們?nèi)蘸蟀l(fā)展的重要組成。有了它,我們便可以不再過(guò)多依賴(lài)底層的數(shù)據(jù)結(jié)構(gòu),相當(dāng)于直接站在巨人的肩膀上看世界~
5. 如何學(xué)習(xí)STL
學(xué)習(xí)STL的過(guò)程就好比是一個(gè)嬰兒蹣跚學(xué)步到健步如飛的過(guò)程。
簡(jiǎn)單總結(jié)一下:學(xué)習(xí)STL的三個(gè)境界:能用,明理,能擴(kuò)展 。
6.STL的缺陷
1. STL庫(kù)的更新太慢了。
2. STL現(xiàn)在都沒(méi)有支持線(xiàn)程安全。并發(fā)環(huán)境下需要我們自己加鎖。且鎖的粒度是比較大的。 3. STL極度的追求效率,導(dǎo)致內(nèi)部比較復(fù)雜。比如類(lèi)型萃取,迭代器萃取。
4. STL的使用會(huì)有代碼膨脹的問(wèn)題,比如使用vector/vector/vector這樣會(huì)生成多份代碼,當(dāng)然這是模板語(yǔ)法本身導(dǎo)致的。
結(jié)尾
以上便是本期的全部?jī)?nèi)容,接下來(lái)我們將進(jìn)入STL的具體學(xué)習(xí),敬請(qǐng)期待哦~
柚子快報(bào)邀請(qǐng)碼778899分享:c++ STL相關(guān)簡(jiǎn)介
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。