電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>規(guī)則標(biāo)準(zhǔn)>effective stl中文版下載pdf

effective stl中文版下載pdf

2008-08-25 | rar | 1555 | 次下載 | 免費(fèi)

資料介紹

導(dǎo)讀
你已經(jīng)熟悉了STL。你知道怎么建立容器,迭代它們的內(nèi)容,添加刪除元素和應(yīng)用常見(jiàn)算法,比如find和sort。但你并不
滿足,你不能擺脫STL所提供的超過(guò)它們能帶來(lái)的好處的感覺(jué)。應(yīng)該簡(jiǎn)單的任務(wù)并非那樣。應(yīng)該直截了當(dāng)?shù)牟僮鞔_有資
源泄漏或錯(cuò)誤行為。應(yīng)該高效的過(guò)程卻需要比你希望給它們的更多的時(shí)間和內(nèi)存。是的,你知道怎么使用STL,但你不
確定你在有效地使用它。
我為你寫了這本書(shū)。
在《Effective STL》中,我解釋了怎樣結(jié)合STL組件來(lái)在庫(kù)的設(shè)計(jì)得到最大的好處。這樣的信息允許你對(duì)簡(jiǎn)單、直接的問(wèn)
題開(kāi)發(fā)簡(jiǎn)單、直接的解決方案,也幫你對(duì)更復(fù)雜的問(wèn)題設(shè)計(jì)優(yōu)雅的方法。我描述了常見(jiàn)的STL使用錯(cuò)誤,而且向你演示
怎么避開(kāi)它們。那幫助你躲開(kāi)閃資源漏、不可移植的代碼和未定義的行為。我討論了優(yōu)化代碼的方法,所以你能使STL
表現(xiàn)得像它應(yīng)該的那樣快速、光滑。
本書(shū)里的信息將使你成為一個(gè)更好的STL程序員,它將讓你成為一個(gè)更高產(chǎn)的程序員。而且它將讓你成為一個(gè)更愉快的
程序員,使用STL很有趣,但是有效地使用它更為有趣,這種有趣是它們必須把你拽離鍵盤,因?yàn)槟悴荒芟嘈拍銧?zhēng)擁有
的好時(shí)光。即使對(duì)STL的匆匆一瞥也能發(fā)現(xiàn)它是一個(gè)非??岬膸?kù),但這份酷比你可能想象的更寬更深。我在本書(shū)的一個(gè)
主要目標(biāo)是傳達(dá)給你這個(gè)庫(kù)有多神奇,因?yàn)樵谖?a target='_blank' class='arckwlink_none'>編程的差不多30年里,我從未見(jiàn)過(guò)任何像STL的東西。你或許也沒(méi)有。
定義、使用和擴(kuò)展STL
沒(méi)有“STL”的官方定義,而且當(dāng)人們使用這個(gè)術(shù)語(yǔ)時(shí),不同的人表示的是不同的東西。在本書(shū)中,“STL”的意思是
與迭代器合作的C++標(biāo)準(zhǔn)庫(kù)的一部分。那包括標(biāo)準(zhǔn)容器(包括string),iostream庫(kù)的一部分,函數(shù)對(duì)象和算法。它不包
括標(biāo)準(zhǔn)容器適配器(stack、queue和priority_queue)以及bitset和valarray容器,因?yàn)樗鼈內(nèi)狈Φ髦С?。它也不包括?shù)
組。真的,數(shù)組以指針的形式支持迭代器,但數(shù)組是C++語(yǔ)言的一部分,并非庫(kù)。
技術(shù)上,我的STL的定義排除了標(biāo)準(zhǔn)C++庫(kù)的擴(kuò)展,特別是散列容器,單鏈表,rope和多種非標(biāo)準(zhǔn)函數(shù)對(duì)象。雖然如
此,一個(gè)有效的STL程序員需要知道這樣的擴(kuò)展,因此我在合適的地方提到了它們。的確,條款25致力于非標(biāo)準(zhǔn)散列容
器的概述。它們現(xiàn)在不在STL里,但類似它們的東西幾乎肯定將要進(jìn)入標(biāo)準(zhǔn)C++庫(kù)的下一個(gè)版本,而在窺見(jiàn)未來(lái)是有價(jià)
值的。
存在STL擴(kuò)展的原因之一是STL是被設(shè)計(jì)為可擴(kuò)展的庫(kù)。不過(guò),在本書(shū)里,我關(guān)注于使用STL,而不是給它添加新的組
件。例如,如果你發(fā)現(xiàn),我沒(méi)有說(shuō)多少關(guān)于寫你自己的算法的東西,而且我根本沒(méi)有在寫新容器和迭代器上提供指導(dǎo)。
我相信在你著手增加它的能力之前,掌握STL已經(jīng)提供的東西很重要,所以那是我在《Effective STL》里關(guān)注的。當(dāng)你決
定建立你自己STLesque組件時(shí),你將在像Josuttis的《The C++ Standard Library》[3]和Austern的《Generic Programming and
the STL》[4]這樣的書(shū)里找到建議。我確實(shí)在這本書(shū)里討論的STL擴(kuò)展的一個(gè)方面是寫你自己的函數(shù)對(duì)象。你不可能在不
知道怎么寫自己的函數(shù)對(duì)象的情況下有效地使用STL,所以我為這個(gè)主題投入了整整一章(第6章)。

STL和標(biāo)準(zhǔn)
我經(jīng)常提及C++標(biāo)準(zhǔn),因?yàn)椤禘ffective STL》專注于可移植的,與標(biāo)準(zhǔn)一致的C++。理論上,我在這本書(shū)里演示的一切都
可以用于每個(gè)C++實(shí)現(xiàn)。實(shí)際上,那不是真的。編譯器的缺陷和STL實(shí)現(xiàn)湊合成防止一些有效的代碼編譯或表現(xiàn)出它們
應(yīng)該有的行為。那是很常見(jiàn)的情況,我描述了這些問(wèn)題,而且解釋了你應(yīng)該怎么變通地解決他們。
有時(shí)候,最容易的變通辦法是使用另一個(gè)STL實(shí)現(xiàn)。附錄B給一個(gè)這種情況的例子。實(shí)際上,STL用得越多,編譯器和庫(kù)
實(shí)現(xiàn)的區(qū)別就越重要。程序員在設(shè)法讓合法的代碼編譯時(shí)遇到困難,他們通常責(zé)備他們的編譯器,但對(duì)于STL,編譯器
可能是好的,而STL實(shí)現(xiàn)是不良的。為了強(qiáng)調(diào)你得依賴編譯器和庫(kù)實(shí)現(xiàn)的事實(shí),我使用你的STL平臺(tái)。一個(gè)STL平臺(tái)是一
個(gè)特定編譯器和一個(gè)標(biāo)準(zhǔn)模板庫(kù)特定實(shí)現(xiàn)的組合。在本書(shū)里,如果我提及一個(gè)編譯器問(wèn)題,你能確信我意思是編譯器有
問(wèn)題。但是,如果我說(shuō)你的STL平臺(tái)有問(wèn)題,你應(yīng)該理解為“可能是編譯器缺陷,可能是庫(kù)缺陷,或許都有”。
我一般提及你的“編譯器們”——復(fù)數(shù)。那是我長(zhǎng)期相信你通過(guò)確保代碼可以在多于一個(gè)的編譯器上工作的方法來(lái)改進(jìn)
你的代碼質(zhì)量(特別是移植性)的產(chǎn)物。此外,使用多個(gè)編譯器一般可以簡(jiǎn)化拆解由STL的使用不當(dāng)造成的錯(cuò)誤信息難
題。(條款49致力于解碼此類消息的方法。)
關(guān)于與標(biāo)準(zhǔn)一致的代碼,我強(qiáng)調(diào)的另一個(gè)方面是你應(yīng)該避免構(gòu)造未定義行為。這樣的構(gòu)造可能在運(yùn)行期做任何事情。不
幸的是,這意味著它們可能正好做了你想要的,而那會(huì)導(dǎo)致一種錯(cuò)誤的安全感。太多程序員以為未定義行為總會(huì)導(dǎo)致一
個(gè)明顯的問(wèn)題,例如,一個(gè)分段錯(cuò)誤或其他災(zāi)難性的錯(cuò)誤。未定義行為的結(jié)果實(shí)際上更為狡猾,例如,破壞極少引用的
數(shù)據(jù)。它們也可以通過(guò)程序運(yùn)行。我發(fā)現(xiàn)一個(gè)未定義行為的好定義是“為我工作,為你工作,在開(kāi)發(fā)和QA期間工作,
但在你最重要的用戶面前爆炸了”。避免未定義行為很重要,所以我指出了它會(huì)出現(xiàn)的通常情況。你應(yīng)該訓(xùn)練你自己警
惕這樣的情況。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1490次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  93次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開(kāi)關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費(fèi)
  11. 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  12. 0.11 MB  |  4次下載  |  免費(fèi)
  13. 7基于單片機(jī)和 SG3525的程控開(kāi)關(guān)電源設(shè)計(jì)
  14. 0.23 MB  |  3次下載  |  免費(fèi)
  15. 8基于單片機(jī)的紅外風(fēng)扇遙控
  16. 0.23 MB  |  3次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)