c++标准程序库 自修教程与参考手册.pdf

c++标准程序库 自修教程与参考手册.pdf

T h e ++ 標準程式庫 C A n ++ n 自修教本與參考工具 C — — T o t h a e t C 標 e + d + S S 準 T t a L n d a S r 程 o d u L r i c b r 式 e a s r y , b 庫 y J o s u 侯孟 t t i s 捷岩 譯 碁 侯捷/孟岩 譯 峰 碁峰腦圖書資料股份有限公司 C++ 標準程式庫標準程式庫 標準程式庫標準程式庫 C++ Standard Library 教本與手冊(A Tutorial and Reference ) Nicolai M. Josuttis 著 侯捷 孟岩 合譯 / 巨細靡遺 井然有序(侯捷譯序) a 巨細靡遺 井然有序 (侯捷譯序) 自從1998 年C++ Standard 定案以後,C++ 程式庫便有了大幅擴充。原先為大家所 熟知、標準規格定案前蘊釀已久的 STL (Standard Template Library ,標準模板程 式庫),不再被單獨對待,而是被納入整個C++ 標準程式庫(Standard Library )。 同時,原有的程式庫(如 iostream )也根據泛型技術(generics )在內部上做了很 大的修改。可以說,C++ Standard 的發佈對C++ 社群帶來了翻天覆地的大變動 — 不是來自語言本身,而是來自標準程式庫。這個變動,影響 C++ 程式編寫風格至 鉅,C++之父Bjarne Stroustrup 並因此寫了一篇文章:Learning Standard C++ as a New Language (載於C/C++ Users Journal, 1999/05 )。 我個人於 1998 年開始潛心研究泛型技術和 STL ,本書英文版《The C++ Standard Library 》甫一出版便成為我學習C++ 標準程式庫的最重要案頭工具之一。小有心 得之後,我寫過數篇相關技術文章,從來離不開本書的影響和幫助。我曾經把STL (代表泛型技術目前最被廣泛運用的一個成熟產品,也是C++ 標準程式庫的絕大 成份)的學習比喻為三個階段(或層次): 第一境界:熟用STL 第二境界:瞭解泛型技術的內涵與STL 的學理乃至實作 第三境界:擴充STL 不論哪一個階段,你都能夠從本書獲得不同程度的幫助。 第一階段(對最大多數程式員有立竿見影之效),我們需要一本全面而詳盡的教 本,附帶多量而設計良好的範例,帶領我們認識十數個 STL 容器(containers )、 數十個 STL 演算法(algorithms )、許許多多的迭代器(iteartors )、配接器(adapters )、 仿函式(functors )…的各種特性和用途。這些為數繁多的組件必須經過良好的編 排組織和索引,才能成就一本效果良好、富教育性又可供長久查閱的案頭工具書。 The C++ Standard Library b 巨細靡遺 井然有序(侯捷譯序) 在這一階段裡,本書表現極為優異。書中運用許多圖表,對所有 STL 組件的成員 做了極其詳盡的整理。更值得稱道的是書中交叉參考(cross reference )做得非常 好,在許多關鍵地點告訴讀者當下可參見哪一章哪一節哪一頁,對於閱讀和學習 帶來很大的幫助(本中文版以頁頁對譯方式保留了所有交叉參考和索引)。 第二階段(從STL 的運用晉升至泛型技術的學習),我們需要一些關鍵的STL 源 碼(或偽碼, pseudo code ),幫助我們理解關鍵的資料結構、關鍵的編程技術。認 識這些關鍵源碼(或偽碼)同時也有助提昇第一階段的運用深度(學會使用一樣 東西,卻不知道它的道理,不高明1 )。 本書很多地方都提供了C++ 標準程式庫的關鍵源碼。不全面,但很關鍵。 第三階段(成為一位泛型技術專家;打造自己的 STL 相容組件),我們需要深入 了解 STL 的設計理念和組織架構2 3 ,並深入(且全面地)了解STL 實作手法 。是 的,不入虎穴,不能得虎子;徹底了解 STL 如何被打造出來之後,你才能寫出和 STL 水乳交融、完美整合的自定組件(user-defined components )。 本書對第三階段的學習也有相當幫助。雖然沒能提供全面的 STL 源碼並分析其技 術(那需要另外800 頁),卻提供了為數不少的訂製型組件實作範例:p191, p213 提供了一個執行期指定排序準則並運用不同排序準則的實例,p219 提供一個自定 容器(雖然只是個簡單的包覆類別),p222 提供一個「reference 語意」示範作法,

文档评论(0)

1亿VIP精品文档

相关文档