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

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

內(nèi)容概要

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

作者簡介

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

書籍目錄

第0章 導讀 0.1 關(guān)于本書 0.2 讀者對象 0.3 本書的術(shù)語與風格 0.4 本書的結(jié)構(gòu) 0.5 如何閱讀本書 第1章 Boost程序庫總論 1.1 關(guān)于Boost 1.1.1 什么是Boost 1.1.2 安裝Boost 1.1.3 使用Boost 1.2 關(guān)于STLport 1.2.1 什么是STLport 1.2.2 安裝STLport 1.2.3 使用STLport 1.3 開發(fā)環(huán)境 1.3.1 STLport的編譯方法 1.3.2 Boost的編譯方法 1.3.3 Visual Studio 2005環(huán)境設(shè)置 第2章 時間與日期 2.1 timer庫概述 2.2 timer 2.2.1 用法 2.2.2 類摘要 2.2.3 使用建議 2.3 progress_timer 2.3.1 用法 2.3.2 類摘要 2.3.3 擴展計時精度 2.4 progress_display 2.4.1 類摘要 2.4.2 用法 2.4.3 注意事項 2.5 date_time庫概述 2.5.1 編譯date_time庫 2.5.2 date_time庫的基本概念 2.6 處理日期 2.6.1 日期 2.6.2 創(chuàng)建日期對象 2.6.3 訪問日期 2.6.4 日期的輸出 2.6.5 與tm結(jié)構(gòu)的轉(zhuǎn)換 2.6.6 日期長度 2.6.7 日期運算 2.6.8 日期區(qū)間 2.6.9 日期區(qū)間運算 2.6.10 日期迭代器 2.6.11 其他功能 2.6.12 綜合運用 2.7 處理時間 2.7.1 時間長度 2.7.2 操作時間長度 2.7.3 時間長度的精確度 2.7.4 時間點 2.7.5 創(chuàng)建時間點對象 2.7.6 操作時間點對象 2.7.7 與tm、time_t等結(jié)構(gòu)的轉(zhuǎn)換 2.7.8 時間區(qū)間 2.7.9 時間迭代器 2.7.10 綜合運用 2.8 date_time庫的高級議題 2.8.1 編譯配置宏 2.8.2 格式化時間 2.8.3 本地時間 2.8.4 序列化 2.9 總結(jié) 第3章 內(nèi)存管理 3.1 smart_ptr庫概述 3.1.1 RAⅡ機制 3.1.2 智能指針 3.2 scoped_ptr 3.2.1 類摘要 3.2.2 操作函數(shù) 3.2.3 用法 3.2.4 與auto_ptr的區(qū)別 3.3 scoped_array 3.3.1 類摘要 3.3.2 用法 3.3.3 使用建議 3.4 shared_ptr 3.4.1 類摘要 3.4.2 操作函數(shù) 3.4.3 用法 3.4.4 工廠函數(shù) 3.4.5 應用于標準容器 3.4.6 應用于橋接模式 3.4.7 應用于工廠模式 3.4.8 定制刪除器 3.4.9 高級議題 3.5 shared_array 3.5.1 類摘要 3.5.2 用法 3.6 weak_ptr 3.6.1 類摘要 3.6.2 用法 3.6.3 獲得this的shared_ptr 3.7 intrusive_ptr 3.8 pool庫概述 3.9 pool 3.9.1 類摘要 3.9.2 操作函數(shù) 3.9.3 用法 3.10 object_pool 3.10.1 類摘要 3.10.2 操作函數(shù) 3.10.3 用法 3.10.4 使用更多的構(gòu)造參數(shù) 3.11 slngleton_pool 3.11.1 類摘要 3.11.2 用法 3.12 pool_alloc 3.13 總結(jié) 第4章 實用工具 4.1 noncopyable 4.1.1 原理 4.1.2 用法 4.2 typeof 4.2.1 動機 4.2.2 用法 4.2.3 向typeof庫注冊自定義類 4.2.4 高級議題 4.3 optional 4.3.1 “無意義”的值 4.3.2 類摘要 4.3.3 操作函數(shù) 4.3.4 用法 4.3.5 工廠函數(shù) 4.3.6 高級議題 4.4 assign 4.4.1 使用操作符+=向容器增加元素 4.4.2 使用操作符()向容器增加元素 4.4.3 初始化容器元素 4.4.4 減少重復輸入 4.4.5 與非標準容器工作 4.4.6 高級用法 4.5 swap 4.5.1 原理 4.5.2 交換數(shù)組 4.5.3 特化std::swap 4.5.4 特化ADL可找到的swap 4.5.5 使用建議 4.6 singleton 4.6.1 boost.pool的單件實現(xiàn) 4.6.2 boost.serialzation的單件實現(xiàn) 4.7 tribool 4.7.1 類摘要 4.7.2 用法 4.7.3 為第三態(tài)更名 4.7.4 輸入輸出 4.7.5 與optional的區(qū)別 4.8 operators 4.8.1 基本運算概念 4.8.2 算術(shù)操作符的用法 4.8.3 基類鏈 4.8.4 復合運算概念 4.8.5 相等與等價 4.8.6 解引用操作符 4.8.7 下標操作符 4.8.8 高級議題 4.9 exception 4.9.1 標準庫中的異常 4.9.2 類摘要 4.9.3 向異常傳遞信息 4.9.4 更進一步的用法 4.9.5 包裝標準異常 4.9.6 使用函數(shù)拋出異常 4.9.7 獲得更多的調(diào)試信息 4.9.8 高級議題 4.10 uuid 4.10.1 類摘要 4.10.2 用法 4.10.3 生成器 4.10.4 增強的uuid類 4.10.5 與字符串的轉(zhuǎn)換 4.10.6 SHA1摘要算法 4.11 config 4.11.1 BOOST_STRINGIZE 4.11.2 BOOST_STATIC_CONSTANT 4.11.3 禁止編譯器警告 4.11.4 其他工具 4.12 utility 4.12.1 BOOST_BINARY 4.12.2 BOOST_CURRENT_FUNCTION 4.13 總結(jié) 第5章 字符串與文本處理 5.1 lexical_cast 5.1.1 用法 5.1.2 異常bad_lexical_cast 5.1.3 對轉(zhuǎn)換對象的要求 5.1.4 應用于自己的類 5.2 format 5.2.1 簡單的例子 5.2.2 輸入操作符% 5.2.3 類摘要 5.2.4 格式化語法 5.2.5 format的性能 5.2.6 高級用法 5.3 string_algo 5.3.1 簡單的例子 5.3.2 string_algo概述 5.3.3 大小寫轉(zhuǎn)換 5.3.4 判斷式(算法) 5.3.5 判斷式(函數(shù)對象) 5.3.6 分類 5.3.7 修剪 5.3.8 查找 5.3.9 替換與刪除 5.3.10 分割 5.3.11 合并 5.3.12 查找(分割)迭代器 5.4 tokenizer 5.4.1 類摘要 5.4.2 用法 5.4.3 分詞函數(shù)對象 5.4.4 char_separator 5.4.5 escaped_list_separator 5.4.6 offset_separator 5.4.7 tokenizer庫的缺陷 5.5 xpressive 5.5.1 兩種使用方式 5.5.2 正則表達式語法簡介 5.5.3 類摘要 5.5.4 匹配 5.5.5 查找 5.5.6 替換 5.5.7 迭代 5.5.8 分詞 5.5.9 與regex的區(qū)別 5.5.10 高級議題 5.6 總結(jié) 第6章 正確性與測試 6.1 assert 6.1.1 基本用法 6.1.2 禁用斷言 6.1.3 擴展用法 6.1.4 BOOST_VERIFY 6.2 static_assert 6.2.1 用法 6.2.2 使用建議 6.3 test 6.3.1 編譯test庫 6.3.2 最小化的測試套件 6.3.3 單元測試框架簡介 6.3.4 測試斷言 6.3.5 測試用例與套件 6.3.6 測試實例 6.3.7 測試夾具 6.3.8 測試日志 6.3.9 運行參數(shù) 6.3.10 函數(shù)執(zhí)行監(jiān)視器 6.3.11 程序執(zhí)行監(jiān)視器 6.3.12 高級議題 6.4 總結(jié) …… 第7章 容器與數(shù)據(jù)結(jié)構(gòu) 第8章 算法 第9章 數(shù)學與數(shù)字 第10章 操作系統(tǒng)相關(guān) 第11章 函數(shù)與回調(diào) 第12章 并發(fā)編程 第13章 編程語言支持 第14章 其他Boost組件 第15章 Boost與設(shè)計模式 第16章 結(jié)束語 附錄A 推薦書目 附錄B 網(wǎng)絡(luò)資源 附錄C C++標準簡述 附錄D STL簡述 附錄E ref_array實現(xiàn)代碼

章節(jié)摘錄

版權(quán)頁:   插圖:   1.1.2安裝Boost 從Boost網(wǎng)站(www.boost.org)下載boost_1_42_0.7z,一個約30MB左右大小的壓縮包文件,使用7Zip、WinRAR或者其他工具把該文件解壓縮到硬盤任意位置即可完成安裝,本書使用的路徑是:D:\boost。 注意:Boost1.42版解壓縮后約有200MB,請確保硬盤有足夠的空間。 1.1.3使用Boost Boost庫大部分組件(近90%)不需要編譯,直接包含頭文件即可。例如,如果要使用boost::tribool,只需要在C++源文件中添加如下include語句即可(當然,接下來的代碼可能還需要using namespace boost;): #include //使用tribool庫 細心的讀者會發(fā)現(xiàn),Boost庫的頭文件與我們平常所用的頭文件(*.h)或c++標準庫頭文件(沒有后綴名)不同,這正是Boost的獨特之處。它把C++類的聲明和實現(xiàn)都放在了一個文件中,而不是分成兩個文件,也就是“.h+.cpp”,故文件的后綴是.hpp。 之所以這么做,當然是有理由的。首先就是與普通的C頭文件(*.h)區(qū)分,另一個很重要的原因就是使Boost庫不需要預先編譯,直接引入程序員的工程即可編譯鏈接,方便了庫的使用。最后一個(無奈的)原因則是c++編譯器的限制,許多編譯器尚不支持c++標準提出的模板的分離編譯模式(export關(guān)鍵字),而Boost庫大量使用了模板,為了保持與各個編譯器的兼容,也不得不采用這種.hpp的頭文件形式。 剩下的共十五個庫(包括date_time、regex、program_options、test、thread、python等)必須編譯成靜態(tài)庫或者動態(tài)庫后才能使用。不過有個好消息,其中有的庫不需要編譯也可以使用部分功能,而更好的消息是有的庫已經(jīng)有了不需要編譯的替代品(xpressive可替代regex、signals2可替代signals)。 在Windows下的VC編譯器支持自動鏈接技術(shù),VC程序員可以不必為鏈接靜態(tài)庫或動態(tài)庫、調(diào)試庫或發(fā)行庫等問題而費心了。其他編譯器就沒有這樣幸運,必須在命令行上手工指定鏈接庫。 1.2關(guān)于STLport 本節(jié)將介紹C++標準庫的一個高效實現(xiàn)——STLport,它是本書的默認標準庫配置,用于配合Boost程序庫工作。 1.2.1 什么是STLport STLport是一個完全符合C++98標準(及2003年修訂)的一個免費的c++標準庫實現(xiàn)。它是由俄羅斯人Boris Fomitchev發(fā)起的開源項目,目的是基于著名的SGISTL開發(fā)一個可移植到各種平臺上使用的高效的C++標準庫。 STLport具有很多其他STL實現(xiàn)所沒有的優(yōu)點。首先是高度的可移植性,可以配合市面上幾乎所有的操作系統(tǒng)和編譯器使用,使開發(fā)的程序能夠在不同的編譯平臺上獲得一致的標準庫實現(xiàn)。其次是性能表現(xiàn)優(yōu)秀,其原始版本SGISTL就以高效而聞名,STLport在移植時也特別注重性能與效率,而且100%完全符合C++標準規(guī)范。第三個優(yōu)點是在標準之外增加了若干有用的擴展,如rope(增強的字符串類)、slist(單鏈表數(shù)據(jù)結(jié)構(gòu))、hash_map(散列映射容器),以及支持線程安全。

編輯推薦

《Boost程序庫完全開發(fā)指南:深入C++"準"標準庫(修訂版)》內(nèi)容豐富、結(jié)構(gòu)嚴謹、詳略得當、講解透徹,帶領(lǐng)讀者領(lǐng)略了C++的最新前沿技術(shù),相信會是每位C++程序員的必備工具書。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


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


用戶評論 (總計18條)

 
 

  •   花了半個多月,終于把書看完了。我非常懷疑作者會不會用Boost庫。我的媽呀,都寫的啥玩意,湊字數(shù)也不能這樣。介紹了Boost中的幾十個庫,風格都是:開始介紹下庫名稱,一點皮毛,再說明下類型,再貼個10行的帶main() 函數(shù)的代碼。各個模塊介紹都是這樣,我非常懷疑作者只是把Boost文檔簡單翻譯了一下。最皮毛的那點,相當于給大一學生上C++課,那種深度。這樣的書對于有經(jīng)驗的開發(fā)是沒有多大的意義,還不如看幫助文檔和代碼更實用。而且大一學生一般也不會去學Boost。本書毫無價值,純屬浪費時間,更讓我鑒定我的想法,國人寫的書不買。
  •   就一本簡單的入門指南~其實看看電子版就夠了,無需購買.多余
  •   放在手頭,寫代碼時經(jīng)常會參考,挺方便,寫得也不錯,有些內(nèi)容比如類似組件的細微區(qū)別也挺有啟發(fā)。
  •   這么一本毫無邏輯脈絡(luò)、堆砌類摘要、瞎編用法、主次詳略不明的書竟然也能出版,豬都能寫書了服了作者了,能把書寫的爛到這種程度,沒有幾輩子的時間是修不來的,負分,滾粗請作者捫心自問,寫著一本爛書誤人子弟好意思嗎,良心是不是喂狗吃了
  •   有例子比較詳細,只是連續(xù)看的話略枯燥
  •   很喜歡的一本書,值得推薦的一本書
  •   經(jīng)典的書,當工具看也好,當學編程也好,都不錯
  •   這是一本boost的好書,學習ing!
  •   一般般吧。適合入門學習。里面東西也不是很全。感覺不能叫做“完全開發(fā)指南”。不過作為剛開始學習boost還是挺不錯的。
  •   似的質(zhì)量還可以,送貨速度也很好,然后內(nèi)容有點太突兀,沒有一點關(guān)于新標準(11x)的描述,讓人感覺不太可靠!
  •   學習c++ 少不了讀他。。。。。。。。。。
  •   學習boost必備,C++程序員必備
  •   很深入,C++開發(fā)必看
  •   被忽悠了,雖然內(nèi)容不錯
  •   一本好書,推薦買
  •   Boost很傳奇的東西
  •   boost必學
  •   再版版本,非常好
 

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

京ICP備13047387號-7