資料介紹
導讀
你已經(jīng)熟悉了STL。你知道怎么建立容器,迭代它們的內(nèi)容,添加刪除元素和應用常見算法,比如find和sort。但你并不
滿足,你不能擺脫STL所提供的超過它們能帶來的好處的感覺。應該簡單的任務并非那樣。應該直截了當?shù)牟僮鞔_有資
源泄漏或錯誤行為。應該高效的過程卻需要比你希望給它們的更多的時間和內(nèi)存。是的,你知道怎么使用STL,但你不
確定你在有效地使用它。
我為你寫了這本書。
在《Effective STL》中,我解釋了怎樣結(jié)合STL組件來在庫的設計得到最大的好處。這樣的信息允許你對簡單、直接的問
題開發(fā)簡單、直接的解決方案,也幫你對更復雜的問題設計優(yōu)雅的方法。我描述了常見的STL使用錯誤,而且向你演示
怎么避開它們。那幫助你躲開閃資源漏、不可移植的代碼和未定義的行為。我討論了優(yōu)化代碼的方法,所以你能使STL
表現(xiàn)得像它應該的那樣快速、光滑。
本書里的信息將使你成為一個更好的STL程序員,它將讓你成為一個更高產(chǎn)的程序員。而且它將讓你成為一個更愉快的
程序員,使用STL很有趣,但是有效地使用它更為有趣,這種有趣是它們必須把你拽離鍵盤,因為你不能相信你爭擁有
的好時光。即使對STL的匆匆一瞥也能發(fā)現(xiàn)它是一個非??岬膸?,但這份酷比你可能想象的更寬更深。我在本書的一個
主要目標是傳達給你這個庫有多神奇,因為在我編程的差不多30年里,我從未見過任何像STL的東西。你或許也沒有。
定義、使用和擴展STL
沒有“STL”的官方定義,而且當人們使用這個術(shù)語時,不同的人表示的是不同的東西。在本書中,“STL”的意思是
與迭代器合作的C++標準庫的一部分。那包括標準容器(包括string),iostream庫的一部分,函數(shù)對象和算法。它不包
括標準容器適配器(stack、queue和priority_queue)以及bitset和valarray容器,因為它們?nèi)狈Φ髦С?。它也不包括?shù)
組。真的,數(shù)組以指針的形式支持迭代器,但數(shù)組是C++語言的一部分,并非庫。
技術(shù)上,我的STL的定義排除了標準C++庫的擴展,特別是散列容器,單鏈表,rope和多種非標準函數(shù)對象。雖然如
此,一個有效的STL程序員需要知道這樣的擴展,因此我在合適的地方提到了它們。的確,條款25致力于非標準散列容
器的概述。它們現(xiàn)在不在STL里,但類似它們的東西幾乎肯定將要進入標準C++庫的下一個版本,而在窺見未來是有價
值的。
存在STL擴展的原因之一是STL是被設計為可擴展的庫。不過,在本書里,我關(guān)注于使用STL,而不是給它添加新的組
件。例如,如果你發(fā)現(xiàn),我沒有說多少關(guān)于寫你自己的算法的東西,而且我根本沒有在寫新容器和迭代器上提供指導。
我相信在你著手增加它的能力之前,掌握STL已經(jīng)提供的東西很重要,所以那是我在《Effective STL》里關(guān)注的。當你決
定建立你自己STLesque組件時,你將在像Josuttis的《The C++ Standard Library》[3]和Austern的《Generic Programming and
the STL》[4]這樣的書里找到建議。我確實在這本書里討論的STL擴展的一個方面是寫你自己的函數(shù)對象。你不可能在不
知道怎么寫自己的函數(shù)對象的情況下有效地使用STL,所以我為這個主題投入了整整一章(第6章)。
STL和標準
我經(jīng)常提及C++標準,因為《Effective STL》專注于可移植的,與標準一致的C++。理論上,我在這本書里演示的一切都
可以用于每個C++實現(xiàn)。實際上,那不是真的。編譯器的缺陷和STL實現(xiàn)湊合成防止一些有效的代碼編譯或表現(xiàn)出它們
應該有的行為。那是很常見的情況,我描述了這些問題,而且解釋了你應該怎么變通地解決他們。
有時候,最容易的變通辦法是使用另一個STL實現(xiàn)。附錄B給一個這種情況的例子。實際上,STL用得越多,編譯器和庫
實現(xiàn)的區(qū)別就越重要。程序員在設法讓合法的代碼編譯時遇到困難,他們通常責備他們的編譯器,但對于STL,編譯器
可能是好的,而STL實現(xiàn)是不良的。為了強調(diào)你得依賴編譯器和庫實現(xiàn)的事實,我使用你的STL平臺。一個STL平臺是一
個特定編譯器和一個標準模板庫特定實現(xiàn)的組合。在本書里,如果我提及一個編譯器問題,你能確信我意思是編譯器有
問題。但是,如果我說你的STL平臺有問題,你應該理解為“可能是編譯器缺陷,可能是庫缺陷,或許都有”。
我一般提及你的“編譯器們”——復數(shù)。那是我長期相信你通過確保代碼可以在多于一個的編譯器上工作的方法來改進
你的代碼質(zhì)量(特別是移植性)的產(chǎn)物。此外,使用多個編譯器一般可以簡化拆解由STL的使用不當造成的錯誤信息難
題。(條款49致力于解碼此類消息的方法。)
關(guān)于與標準一致的代碼,我強調(diào)的另一個方面是你應該避免構(gòu)造未定義行為。這樣的構(gòu)造可能在運行期做任何事情。不
幸的是,這意味著它們可能正好做了你想要的,而那會導致一種錯誤的安全感。太多程序員以為未定義行為總會導致一
個明顯的問題,例如,一個分段錯誤或其他災難性的錯誤。未定義行為的結(jié)果實際上更為狡猾,例如,破壞極少引用的
數(shù)據(jù)。它們也可以通過程序運行。我發(fā)現(xiàn)一個未定義行為的好定義是“為我工作,為你工作,在開發(fā)和QA期間工作,
但在你最重要的用戶面前爆炸了”。避免未定義行為很重要,所以我指出了它會出現(xiàn)的通常情況。你應該訓練你自己警
惕這樣的情況。
- STM32固件庫使用手冊中文版以及技術(shù)手冊中文版pdf 0次下載
- 實用開關(guān)電源設計-中文版pdf 0次下載
- FP8202規(guī)格書中文版pdf 0次下載
- FP6188規(guī)格書中文版pdf 0次下載
- FP6151規(guī)格書中文版pdf 0次下載
- FP6150B規(guī)格書中文版pdf 0次下載
- S7-STL中文編程手冊 27次下載
- Autocad試用版官方中文版免費下載 23次下載
- 1965fb電源IC資料-中文版下載.pdf 0次下載
- PROE中文版免費下載 0次下載
- Proteus中文版免費下載 0次下載
- Effective Java中文版 0次下載
- 經(jīng)典中文版More+Effective+C++ 35個改善編程與設計的有效方法 0次下載
- 中文版第三版Effective C++ 高清PDF 0次下載
- effective stl pdf
- 片上軟件需要什么安全完整性? 367次閱讀
- 博途使用STL中的MOVE指令 5653次閱讀
- C++ STL基本概念是什么 1222次閱讀
- 什么是STL? 4042次閱讀
- C++之STL庫中的容器 996次閱讀
- STL的概述 1188次閱讀
- PLC梯形圖轉(zhuǎn)換成STL程序 4249次閱讀
- Boost庫是什么?C++ Boost的詳細資料簡介 9171次閱讀
- WP_492 出色的計算密集型系統(tǒng)開發(fā)平臺 4366次閱讀
- keil uvision2中文版|keil uvision2漢化補丁下載 1w次閱讀
- adc0809中文資料下載 adc0809引腳圖封裝及應用電路 2w次閱讀
- keil uvision2下載|keil uvision2漢化免費版下載 1.1w次閱讀
- AUTOCAD2009免費下載中文版 CAD2009簡體中文下載及安裝方法 1.2w次閱讀
- MAX232引腳圖功能應用電路 MAX232中文資料PDF數(shù)據(jù)手冊下載 1.4w次閱讀
- PLC控制系統(tǒng)設計教程: 加熱爐送料系統(tǒng)——仿STL指令的編程方式梯形圖舉例 2590次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 93次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關(guān)電源設計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多