Boost程序庫完全開發(fā)指南

出版時間:2010-9  出版社:電子工業(yè)出版社  作者:羅劍鋒  頁數:578  
Tag標簽:無  

前言

Boost是一個功能強大、構造精巧、跨平臺、開源并且完全免費的C++程序庫,有著“C++‘準’標準庫”的美譽。1996年我上大學最開始學的是Pascal,不得不說,Pascal的嚴謹程序風格確實很適合作為一門教學語言,然而用于實際開發(fā)就不那么合適了(直到出現Delphi)。由于當時學校并未開設C語言課程,因此在Pascal課程結束后我就買書自學C/C++語言,并在次年報名國家計算機水平考試,靠著一點點編程和考試的“天分”獲得了高級程序員資質(當年很熱衷考級考證,后來就“淡定”多了)。雖然有了資格證,但我仍然算是個C++的初學者,對于C++的認識還處于C的面向過程和簡單的基于對象層次上。新千年伊始我考入了北京理工大學就讀研究生,因為跟導師做項目開始接觸STL與C++標準庫,大概是2005年從1.33版結識了Boost,這才真正領略了C++的精髓。那段時期Java和C#正在國內大行其道,C++則勢單力薄,有關STL和C++標準的技術書籍寥寥無幾,而講解Boost的書更是為零,故對Boost的學習基本只能靠自己的摸索與實踐。好在Boost自帶的文檔相當豐富(雖然看全英文的資料十分辛苦),而且源碼也寫得比較清晰規(guī)范,在熟悉了STL的基礎上學習Boost倒也并不算太難。但Boost的一個最大的特點就是“龐大”,功能組件眾多,要想把它全部裝進腦子里融會貫通基本上是不可能的,使用時需要經常查閱英文文檔,相當的麻煩。因此,在學習的過程中,我逐漸產生了編寫學習筆記的想法。一開始只是一個簡單的純文本文件,記錄了一些使用經驗的片斷,隨著積累的不斷增加,純文本形式已經不能夠滿足知識整理的需求了,于是我又把這些文字遷移到了Word文檔里,把使用經驗分類編目,加以較系統(tǒng)地歸納梳理。慢慢地,這份學習筆記居然有了上萬字的規(guī)模,成為了一份很好的Boost備忘參考,在日常的開發(fā)工作中給了我很大的幫助——就像《設計模式》一書中所說的那樣,捕獲了很多使用Boost解決問題的實踐經驗,避免了重復發(fā)現。不過,這份資料一直是僅限于我個人使用,屬于“自娛自樂”的作品,從未示人。時間一晃到了2010年1月份的某天夜里,不知道是什么原因我忽然失眠了,躺在床上翻來覆去怎么也睡不著。突然,一個念頭闖入了腦海:把Boost開發(fā)經驗整理出版吧,讓更多人能夠分享這些知識,正所謂“獨樂樂,與眾樂樂,孰樂?”。這個大膽的想法的出現讓我那天的失眠又延長了幾個小時——關于書的各種構想在頭腦中“肆虐橫行”。隨后的幾天里我就把這個想法付諸行動了,雖然以前也寫過并發(fā)表很多文章,也在網上印刷了幾本個人文集,但出版正式的書還是第一次。在把學習筆記進一步整理完善,編寫出較完整的結構和一個樣章后,我就開始聯系出版社了。當初并沒有多大的信心,畢竟我這個作者名不見經傳,也沒有什么資歷、背景和名氣(而且還是個“網盲”,從未跟隨潮流開個人博客)。很幸運,發(fā)出的第一個E-mail就是電子工業(yè)出版社,而且編輯也在第一時間回復了我,這才給了我以持續(xù)寫作完成全書的動力。

內容概要

  Boost是一個功能強大、構造精巧、跨平臺、開源并且完全免費的C++程序庫,有著“C++‘準’標準庫”的美譽?! ∷蒀++標準委員會部分成員所設立的Boost社區(qū)開發(fā)并維護,使用了許多現代C++編程技術,內容涵蓋字符串處理、正則表達式、容器與數據結構、并發(fā)編程、函數式編程、泛型編程、設計模式實現等許多領域,極大地豐富了C++的功能和表現力,能夠使C++軟件開發(fā)更加簡潔、優(yōu)雅、靈活和高效?!  禕oost程序庫完全開發(fā)指南:深入C++"準"標準庫》基于Boost1.42版,介紹了其中的所有99個庫,并且詳細深入地講解了其中數十個庫,同時實現了若干頗具實用價值的工具類和函數,可幫助讀者迅速理解掌握Boost的用法以及在實際應用開發(fā)工作中?!  禕oost程序庫完全開發(fā)指南:深入C++"準"標準庫》內容豐富、結構嚴謹、詳略得當、講解透徹,帶領讀者領略了C++的最新前沿技術,相信會是每位C++程序員的必備工具書。

作者簡介

羅劍鋒(網名Chrono),1996年就讀于東北財經大學,1997年開始接觸C/C++。1998年參加全國計算機等級考試,獲高級程序員資質。2003年畢業(yè)于北京理工大學,獲計算機專業(yè)碩士學位。目前供職于某部委下屬軟件公司,任項目經理,主要研究方向為C/C++、設計模式、密碼學、數據庫、嵌入式系統(tǒng)開發(fā)。業(yè)余愛好是閱讀、欣賞音樂和旅游。

書籍目錄

第0章 導讀	10.1 關于本書	10.2 讀者對象	10.3 本書的術語與風格	20.4 本書的結構	30.5 如何閱讀本書	5第1章 Boost程序庫總論	71.1 關于Boost	71.1.1 什么是Boost	71.1.2 安裝Boost	81.1.3 使用Boost	81.2 關于STLport	91.2.1 什么是STLport	91.2.2 安裝STLport	101.2.3 使用STLport	101.3 開發(fā)環(huán)境	101.3.1 STLport的編譯方法	111.3.2 Boost的編譯方法	111.3.3 VisualStudio 2005環(huán)境設置	15第2章 時間與日期	172.1 timer庫概述	172.2 timer	172.2.1 用法	182.2.2 類摘要	182.2.3 使用建議	192.3 progress_timer	202.3.1 用法	202.3.2 類摘要	212.3.3 擴展計時精度	212.4 progress_display	232.4.1 類摘要	242.4.2 用法	252.4.3 注意事項	262.5 date_time庫概述	272.5.1 編譯date_time庫	272.5.2 date_time庫的基本概念	282.6 處理日期	292.6.1 日期	292.6.2 創(chuàng)建日期對象	302.6.3 訪問日期	312.6.4 日期的輸出	322.6.5 與tm結構的轉換	332.6.6 日期長度	342.6.7 日期運算	352.6.8 日期區(qū)間	362.6.9 日期區(qū)間運算	382.6.10 日期迭代器	392.6.11 其他功能	402.6.12 綜合運用	402.7 處理時間	432.7.1 時間長度	432.7.2 操作時間長度	452.7.3 時間長度的精確度	462.7.4 時間點	482.7.5 創(chuàng)建時間點對象	482.7.6 操作時間點對象	492.7.7 與tm、time_t等結構的轉換	502.7.8 時間區(qū)間	512.7.9 時間迭代器	512.7.10 綜合運用	522.8 date_time庫的高級議題	542.8.1 編譯配置宏	552.8.2 格式化時間	552.8.3 本地時間	562.8.4 序列化	582.9 總結	58第3章 內存管理	613.1 smart_ptr庫概述	613.1.1 RAII機制	613.1.2 智能指針	623.2 scoped_ptr	633.2.1 類摘要	633.2.2 操作函數	643.2.3 用法	653.2.4 與auto_ptr的區(qū)別	663.3 scoped_array	673.3.1 類摘要	673.3.2 用法	683.3.3 使用建議	693.4 shared_ptr	693.4.1 類摘要	703.4.2 操作函數	703.4.3 用法	723.4.4 工廠函數	743.4.5 應用于標準容器	753.4.6 應用于橋接模式	763.4.7 應用于工廠模式	773.4.8 定制刪除器	783.4.9 高級議題	803.5 shared_array	813.5.1 類摘要	813.5.2 用法	823.6 weak_ptr	823.6.1 類摘要	823.6.2 用法	833.6.3 獲得this的shared_ptr	843.7 intrusive_ptr	853.8 pool庫概述	853.9 pool	853.9.1 類摘要	863.9.2 操作函數	863.9.3 用法	873.10 object_pool	883.10.1 類摘要	883.10.2 操作函數	883.10.3 用法	893.10.4 使用更多的構造參數	903.11 singleton_pool	913.11.1 類摘要	913.11.2 用法	923.12 pool_alloc	933.13 總結	93第4章 實用工具	954.1 noncopyable	954.1.1 原理	964.1.2 用法	964.2 typeof	974.2.1 動機	974.2.2 用法	994.2.3 向typeof庫注冊自定義類	1004.2.4 高級議題	1014.3 optional	1014.3.1 “無意義”的值	1014.3.2 類摘要	1024.3.3 操作函數	1024.3.4 用法	1034.3.5 工廠函數	1044.3.6 高級議題	1054.4 assign	1064.4.1 使用操作符+=向容器增加元素	1064.4.2 使用操作符()向容器增加元素	1074.4.3 初始化容器元素	1084.4.4 減少重復輸入	1104.4.5 與非標準容器工作	1114.4.6 高級用法	1124.5 swap	1134.5.1 原理	1134.5.2 交換數組	1144.5.3 特化std::swap	1144.5.4 特化ADL可找到的swap	1154.5.5 使用建議	1164.6 singleton	1164.6.1 boost.pool的單件實現	1174.6.2 boost.serialzation的單件實現	1194.7 tribool	1204.7.1 類摘要	1214.7.2 用法	1224.7.3 為第三態(tài)更名	1224.7.4 輸入輸出	1234.7.5 與optional的區(qū)別	1244.8 operators	1254.8.1 基本運算概念	1264.8.2 算術操作符的用法	1274.8.3 基類鏈	1294.8.4 復合運算概念	1304.8.5 相等與等價	1314.8.6 解引用操作符	1334.8.7 下標操作符	1344.8.8 高級議題	1354.9 exception	1364.9.1 標準庫中的異常	1374.9.2 類摘要	1374.9.3 向異常傳遞信息	1394.9.4 更進一步的用法	1404.9.5 包裝標準異常	1424.9.6 使用函數拋出異常	1434.9.7 獲得更多的調試信息	1444.9.8 高級議題	1454.10 uuid	1464.10.1 類摘要	1474.10.2 用法	1484.10.3 生成器	1504.10.4 增強的uuid類	1524.10.5 與字符串的轉換	1534.10.6 SHA1摘要算法	1544.11 config	1554.11.1 BOOST_STRINGIZE	1554.11.2 BOOST_STATIC_CONSTANT	1554.11.3 禁止編譯器警告	1564.11.4 其他工具	1574.12 utility	1574.12.1 BOOST_BINARY	1574.12.2 BOOST_CURRENT_FUNCTION	1584.13 總結	160第5章 字符串與文本處理	1635.1 lexical_cast	1635.1.1 用法	1645.1.2 異常bad_lexical_cast	1655.1.3 對轉換對象的要求	1665.1.4 應用于自己的類	1665.2 format	1675.2.1 簡單的例子	1685.2.2 輸入操作符%	1695.2.3 類摘要	1715.2.4 格式化語法	1725.2.5 format的性能	1735.2.6 高級用法	1735.3 string_algo	1755.3.1 簡單的例子	1755.3.2 string_algo概述	1765.3.3 大小寫轉換	1775.3.4 判斷式(算法)	1785.3.5 判斷式(函數對象)	1795.3.6 分類	1805.3.7 修剪	1815.3.8 查找	1825.3.9 替換與刪除	1845.3.10 分割	1865.3.11 合并	1875.3.12 查找(分割)迭代器	1885.4 tokenizer	1895.4.1 類摘要	1905.4.2 用法	1905.4.3 分詞函數對象	1915.4.4 char_separator	1925.4.5 escaped_list_separator	1935.4.6 offset_separator	1935.4.7 tokenizer庫的缺陷	1955.5 xpressive	1965.5.1 兩種使用方式	1975.5.2 正則表達式語法簡介	1975.5.3 類摘要	1995.5.4 匹配	2015.5.5 查找	2035.5.6 替換	2045.5.7 迭代	2065.5.8 分詞	2075.5.9 與regex的區(qū)別	2085.5.10 高級議題	2095.6 總結	211第6章 正確性與測試	2136.1 assert	2136.1.1 基本用法	2136.1.2 禁用斷言	2146.1.3 擴展用法	2156.1.4 BOOST_VERIFY	2166.2 static_assert	2176.2.1 用法	2176.2.2 使用建議	2186.3 test	2196.3.1 編譯test庫	2196.3.2 最小化的測試套件	2206.3.3 單元測試框架簡介	2216.3.4 測試斷言	2226.3.5 測試用例與套件	2236.3.6 測試實例	2246.3.7 測試夾具	2266.3.8 測試日志	2286.3.9 運行參數	2296.3.10 函數執(zhí)行監(jiān)視器	2306.3.11 程序執(zhí)行監(jiān)視器	2336.3.12 高級議題	2346.4 總結	236第7章 容器與數據結構	2397.1 array	2397.1.1 類摘要	2407.1.2 操作函數	2407.1.3 用法	2417.1.4 能力限制	2427.1.5 array的初始化	2427.1.6 實現ref_array	2437.1.7 ref_array的用法	2447.2 dynamic_bitset	2457.2.1 類摘要	2457.2.2 創(chuàng)建與賦值	2477.2.3 容器操作	2487.2.4 位運算與比較運算	2497.2.5 訪問元素	2497.2.6 類型轉換	2517.2.7 集合操作	2517.2.8 綜合運用	2527.3 unordered	2537.3.1 散列集合簡介	2547.3.2 散列集合的用法	2557.3.3 散列映射簡介	2567.3.4 散列映射的用法	2567.3.5 性能比較	2577.3.6 高級議題	2597.4 bimap	2617.4.1 類摘要	2617.4.2 基本用法	2627.4.3 值的集合類型	2637.4.4 集合類型的用法	2647.4.5 使用標簽類型	2667.4.6 使用assign庫	2677.4.7 查找與替換	2687.4.8 投射	2697.4.9 高級議題	2707.5 circular_buffer	2717.5.1 類摘要	2717.5.2 用法	2727.5.3 環(huán)型緩沖區(qū)	2737.5.4 空間優(yōu)化型緩沖區(qū)	2757.6 tuple	2757.6.1 最簡單的tuple:pair	2767.6.2 類摘要	2767.6.3 創(chuàng)建與賦值	2777.6.4 訪問元素	2787.6.5 比較操作	2797.6.6 輸入輸出	2807.6.7 連結變量	2817.6.8 應用于assign庫	2827.6.9 應用于exception庫	2827.6.10 內部結構	2827.6.11 使用訪問者模式	2847.6.12 高級議題	2857.7 any	2877.7.1 類摘要	2877.7.2 訪問元素	2887.7.3 用法	2897.7.4 簡化的操作函數	2907.7.5 保存指針	2917.7.6 輸出	2927.7.7 應用于容器	2947.8 variant	2947.8.1 類摘要	2947.8.2 訪問元素	2957.8.3 用法	2967.8.4 訪問器	2977.8.5 與any的區(qū)別	3007.8.6 高級議題	3007.9 multi_array	3027.9.1 類摘要	3027.9.2 用法	3047.9.3 多維數組生成器	3067.9.4 改變形狀和大小	3077.9.5 創(chuàng)建子視圖	3087.9.6 適配普通數組	3107.9.7 高級議題	3117.10 property_tree	3147.10.1 類摘要	3157.10.2 讀取配置信息	3167.10.3 寫入配置信息	3187.10.4 更多用法	3197.10.5 XML數據格式	3207.10.6 其他數據格式	3217.10.7 高級議題	3237.11 總結	324第8章 算法	3278.1 foreach	3278.1.1 用法	3288.1.2 詳細解說	3298.1.3 使用typeof	3298.1.4 更優(yōu)雅的名字	3308.1.5 支持的序列類型	3318.1.6 一個小問題	3328.2 minmax	3328.2.1 用法	3338.2.2 使用tuples::tie	3348.3 minmax_element	3348.3.1 用法	3348.3.2 其他函數的用法	3358.4 總結	336第9章 數學與數字	337第10章 操作系統(tǒng)相關	371第11章 函數與回調	419第12章 并發(fā)編程	467第13章 編程語言支持	513第14章 其他Boost組件	537第15章 Boost與設計模式	547第16章 結束語	559附錄A 推薦書目	565附錄B 網絡資源	567附錄C C++標準簡述	569附錄D STL簡述	571附錄E ref_array實現代碼	573

章節(jié)摘錄

插圖:

編輯推薦

《Boost程序庫完全開發(fā)指南:深入C++"準"標準庫》:Boost是一個功能強大、構造精巧、跨平臺、開源并且完全免費的C++程序庫,有著“C++‘準’標準庫”的美譽,是每位C++程序員的必備工具?!禕oost程序庫完全開發(fā)指南:深入C++"準"標準庫》基于Boost1.42版,介紹了其中所有的99個庫,并且詳細深入地講解了其中數十個庫,同時實現了若干頗具實用價值的工具類和函數,可幫助讀者迅速地理解掌握Boost的用法并用于實際的開發(fā)工作中。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    Boost程序庫完全開發(fā)指南 PDF格式下載


用戶評論 (總計18條)

 
 

  •   深入的不夠,還是稍淺了一些,適合初學者看
  •   質量不錯,內容很詳細,就是編譯boost庫的時候,可能是寫書時間的原因,我照書上的方法編譯不了boost,后來在網上找到方法。
  •   標準工具書,無所謂好壞。錯別字不多倒是真的。
  •   值得學習和一試,對我們編程有絕對的好處。
  •   不錯了,對于新手來說有本這樣的中文書講boost的真的很不錯.
  •   Boost的書比較難找,這本國內的還是寫得挺詳盡的,看看人家國外Introduction to the Boost C++ Libraries,還分上下卷,就是不知道內容怎么樣。
  •   個人喜歡在amazon買東西
  •   接觸BOOST時間不長,一直是在網上查找相關資料,這下買一本,用的時候查的方便了。
  •   要說抄襲,那絕對不是這本書的特征。畢竟boost的書很少,國外也不多,在C++領域這算是非常新的技術了。總的來說很滿意,讀過幾十頁電子版才買的。此書帶有些大師風范,作者對boost理解非常深入,寫此書也能看出來下了很大功夫。表述中肯,沒有無謂的評價。風格上屬于文集類型,所以看起來內容有點散,不過還好。作者特別注重“離開電腦閱讀”,這一點非常推崇。裝訂質量還行,... 閱讀更多
  •   喜歡亞馬遜的服務,支持除了在亞馬遜上買不到的書,我都會一直在亞馬遜上購買服務好,送貨快,質量也不錯當然對于這本書,其實一般般拉,沒講到多少精髓的東西。當然適合我們接觸boost的人閱讀
  •   晚上12點多下的單,沒想到現在就已經拿到了,這次卓越效率比以前高了許多啊。估計貨應該是在西安庫房放著的。說點有用的:書還沒有細看,具體寫的好不好還不敢亂說。但是我需要向大家說明,這本書是側重于應用的,并沒有像許多討論STL的書那樣講解實現,應該說是完全沒有(至少我沒有看見)。... 閱讀更多
  •   Boost是C++中很強大的一個庫,但是有時候在寫代碼時候比較困惑不知如何利用這樣強大的功能,目前我正在讀這本書,覺得是一本很好的工具書。希望更多的C++愛好者能夠像我一樣從中吸收到自己想要的知識!——轉自網上書評
  •   經典不必多說哦
  •   C++ Boost
  •   書還行,價格高些
  •   很好的入門指引
  •   經典boost書
  •   好書必頂
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7