Boost 程序庫完全開發指南 — 深入 C++ "準”標準庫, 4/e Boost程序库完全开发指南:深入C++"准"标准库(第4版)

羅劍鋒

  • 出版商: 電子工業出版社
  • 出版日期: 2017-10-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 572
  • 裝訂: 平裝
  • ISBN: 7121324601
  • ISBN-13: 9787121324604
  • 相關分類: C++ 程式語言

立即出貨 (庫存 < 4)

買這商品的人也買了...

相關主題

商品描述

Boost 是一個功能強大、構造精巧、跨平臺、開源並且完全免費的C++程序庫,有著“C++‘準’標準庫”的美譽。Boost 由C++標準委員會部分成員所設立的Boost 社區開發並維護,使用了許多現代C++編程技術,內容涵蓋字符串處理、正則表達式、容器與數據結構、並發編程、函數式編程、泛型編程、設計模式實現等許多領域,極大地豐富了C++的功能和表現力,能夠使C++軟件開發更加簡捷、優雅、靈活和高效。本書基於2017 年4 月發布的Boost1.64 版,介紹了其中的所有140 餘個庫,並且結合C++11/14/17標準詳細、深入地講解了其中數十個庫,同時實現了若乾頗具實用價值的工具類和函數,可幫助讀者迅速地理解、掌握Boost 的用法並應用於實際的開發工作。本書內容豐富、結構嚴謹、詳略得當、講解透徹,帶領讀者領略了C++的最新前沿技術,相信會是每位C++程序員的必備工具書。

作者簡介

羅劍鋒(網名Chrono)在1996年就讀於東北財經大學;1997年開始接觸C/C++;1998年參加計算機軟件專業技術資格和水平考試,獲高級程序員資質;2003年畢業於北京理工大學,獲計算機專業碩士學位。主要研究方向為C/C++、設計模式、高性能網絡服務器開發,業餘愛好是閱讀、旅遊、欣賞音樂和電影。

目錄大綱

目錄

第0章導讀............................................. ....... 1 
0.1關於本書...................................... ..... 1 
0.2讀者對象......................................... .. 1 
0.3術語與風格...................................... 2 
0.4語言標準. .......................................... 3 
0.5本書的結構.. .................................... 4 
0.6如何閱讀本書........ .......................... 5 
0.7本書的源碼.................. .................... 5 

第1章總論........................ ............................ 7 
1.1簡介................... ................................ 7 
1.1.1獲取方式............ ..................... 8 
1.1.2目錄結構....................... .......... 8 
1.1.3使用方式................................. 9
1.2開發環境........................................... 9 
1.2.1操作系統和編譯器................10 
1.2.2快捷安裝....................... .........10 
1.2.3完全安裝................................10 
1.2. 4定制安裝................................11 
1.2.5編譯驗證......... .......................11 
1.3構建工具....................... ...................12 
1.3.1安裝方式......................... .......12 
1.3.2構建腳本................................12 
1.3.3構建語言...............................13 
1.3.4構建命令............ ...................14 
1.4總結............................ ......................14 

第2章時間與日期..................... .................15 
2.1 timer庫概述............................ ........15
2.2 timer ................................................ .16 
2.2.1用法.......................................16 
2.2.2類摘要...................................17 
2.2.3使用建議........ .......................18 
2.3 progress_timer ........................ .........18 
2.3.1用法.................................... ...18 
2.3.2類摘要...................................19 
2.4 progress_display... ...........................19 
2.4.1類摘要................. ..................20 
2.4.2用法........................... ............21 
2.4.3注意事項...............................22 
2.5 date_time庫概述............................23 
2.5.1使用方式............ ...................23 
2.5.2基本概念......................... ......24
2.6處理日期..........................................24 
2.6.1日期.......................................25 
2.6.2創建日期對象.... ....................25 


Boost程序庫完全開髮指南—深入C++“準”標準庫(第4版)

2.6.3訪問日期... .............................27 
2.6.4日期的輸出.............. ..............28 
2.6.5轉換C結構...........................29 
2.6 .6日期長度................................29 
2.6.7日期運算........ ........................30 
2.6.8日期區間.................... ............31 
2.6.9日期區間運算........................33 
2.6.10日期迭代器..........................34 
2.6.11其他功能.................. ............35 
2.6.12綜合運用..............................36
2.7處理時間..........................................38 
2.7.1時間長度................................39 
2.7.2操作時間長度.......... ..............40 
2.7.3時間精確度............................42 
2.7.4時間點...................................43 
2.7.5創建時間點對象.. ..................44 
2.7.6操作時間點對象....................44 
2.7.7轉換C結構...........................45 
2.7.8時間區間.............. ..................46 
2.7.9時間迭代器......................... ...46 
2.7.10綜合運用..............................47 
2.8 date_time庫的高級議題.... ...........49 
2.8.1編譯配置宏............................50 
2.8.2自定義字面值........................50 
2.8.3格式化時間............... .............51
2.8.4本地時間................................51 
2.9總結.......... ........................................53 

第3章內存管理.... .......................................55 
3.1 smart_ptr庫概述...... .......................55 
3.1.1 RAII機制..................... .........55 
3.1.2智能指針................................56 
3.2 scoped_ptr ........................................57 
3.2.1類摘要.... ...............................57 
3.2.2操作函數............. ...................58 
3.2.3用法.......................... .............59 
3.2.4對比標準............................... 61 
3.3 shared_ptr ........................................63 
3.3.1類摘要. ..................................63 
3.3.2操作函數.......... .....................64
3.3.3用法.......................................65 
3.3.4工廠函數. ..............................67 
3.3.5應用於標準容器............ ........68 
3.3.6應用於橋接模式....................69 
3.3.7應用於工廠模式...... ..............70 
3.3.8定制刪除器............................72 
3.3.9高級議題...............................73 
3.4 weak_ptr........... ................................76 
3.4.1類摘要............ .......................76 
3.4.2用法...................... .................77 
3.4.3對象自我管理........................78 
3.4 .4打破循環引用........................79 
3.5 intrusive_ptr.................. ...................80 
3.5.1類摘要......................... ..........80 
3.5.2用法................................... ....81
3.5.3引用計數器............................82 
3.6 pool庫概述............ .........................83 
3.7 pool...................... .............................83 
3.7.1類摘要............... ....................84 
3.7.2操作函數........................ .......84 
3.7.3用法...................................... .85 
3.8 object_pool ......................................86 
3.8.1類摘要.. .................................86 
3.8.2操作函數........... ....................86 
3.8.3用法......................... ..............87 
3.8.4更多的構造參數....................88 
3.9 singleton_pool .... .............................89 
3.9.1類摘要............... ....................89 
3.9.2用法......................... ..............90
3.10 pool_alloc ......................................91 


Boost程序庫完全開髮指南—深入C++“準”標準庫(第4版)
XI 
3.11總結.................................... ............91 
第4章實用工具................................ ...........93 
4.1 noncopyable.................................... .93 
4.1.1原理.......................................94 
4.1.2用法.......................................94 
4.1.3實現...... .................................95 
4.2 ignore_unused.............. ....................96 
4.2.1基本用法........................ ........96 
4.2.2模板用法................................97 
4.3 optional. ............................................97 
4.3.1類摘要...................................98
4.3.2操作函數................................99 
4.3.3用法........ .............................100 
4.3.4工廠函數............... ...............101 
4.4 assign................................ ..............102 
4.4.1 list_inserter...........................102 
4.4.2 operator+=............................103 
4.4.3 operator () ............. ...............104 
4.4.4 generic_list...........................105 
4.4. 5初始化容器..........................106 
4.4.6重複輸入............... ...............108 
4.4.7操作非標準容器..................109 
4.4.8其他議題... ...........................110 
4.5 tribool .................... .........................110 
4.5.1類摘要................... ..............110
4.5.2用法.....................................111 
4.5.3為第三態更名......................112 
4.5.4輸入/輸出..................... .......113 
4.5.5其他議題..............................113 
4.6 operators.... .....................................114 
4.6.1基本運算概念...... ................116 
4.6.2算術操作符..........................116 
4.6.3基類鏈.................................118 
4.6.4複合運算概念.... ..................119 
4.6.5相等與等價........................ ..121 
4.6.6解引用操作符......................122 
4.6.7下標操作符.......... ................123 
4.6.8布爾轉型操作符..................124 
4.6.9二元操作符..........................126 
4.7 exception..................... ...................126
4.7.1標準庫中的異常..................127 
4.7.2類摘要.................. ...............127 
4.7.3向異常傳遞信息..................129 
4.7.4錯誤信息類.. ........................130 
4.7.5包裝標準異常................... ...132 
4.7.6使用函數拋出異常..............132 
4.7.7獲得更多信息................ ......133 
4.7.8高級議題.............................134 
4.8 uuid...... ...........................................136 
4.8.1類摘要. ................................136 
4.8.2用法............. ........................137 
4.8.3生成器.................... .............139 
4.8.4增強用法.............................141 
4.8 .5轉換字符串..........................142 
4.8.6摘要算法............. ................143
4.9 config..............................................144 
4.9 .1編譯期字符串化..................144 
4.9.2靜態整型常量................. .....145 
4.10 utility .......................................... ..145 
4.10.1二進制常量........................146 
4.10.2調用函數名........... .............147 
4.11總結.................................. ............148 
第5章字符串與文本處理.......................151 
5.1 lexical_cast ... .................................151 
5.1.1函數聲明........... ..................152 
5.1.2用法........................... ..........152 
5.1.3錯誤處理.............................153 
5.1.4轉換對象的要求..................154 


Boost程序庫完全開髮指南—深入C++“準”標準庫(第4版)
XII
5.1.5應用於自定義類..................155 
5.1.6對比標準.................. ............156 
5.2 format ................................... ..........157 
5.2.1簡單的例子..........................157 
5.2.2輸入操作符..........................159 
5.2.3類摘要.................. ...............160 
5.2.4格式化語法..........................161 
5.2 .5性能優化..............................162 
5.2.6高級用法.......... ....................162 
5.3 string_ref ........................... .............164 
5.3.1類摘要............................... ..164 
5.3.2用法.....................................166 
5.4 string_algo ... ..................................167 
5.4.1簡單示例.......... ....................168
5.4.2算法概述..............................169 
5.4.3大小寫轉換........ ..................169 
5.4.4判斷式(算法) ..................170 
5.4.5判斷式(函數對象) ..........172 
5.4.6分類.............................. .......172 
5.4.7修剪.....................................173 
5.4.8查找.....................................174 
5.4.9替換與刪除.. ........................176 
5.4.10分割..................... ..............177 
5.4.11合併............................... ....179 
5.4.12查找(分割)迭代器.........179 
5.5 xpressive........................ .................181 
5.5.1使用方式........................... ...181 
5.5.2正則表達式簡介..................182 
5.5.3類摘要............... ..................183
5.5.4正則匹配..............................185 
5.5.5正則查找......... .....................187 
5.5.6正則替換....................... .......188 
5.5.7正則迭代..............................189 
5.5.8正則分詞. .............................190 
5.5.9高級議題............... ...............192 
5.6總結................................ ................194 

第6章正確性與測試.......................... ......197 
6.1 assert......................................... ......197 
6.1.1基本用法.............................197 
6.1.2禁用斷言... ..........................198 
6.1.3擴展用法.................. ...........199 
6.2 static_assert ...................................200 
6.2.1定義.....................................201
6.2.2用法.....................................201 
6.2.3使用建議... ..........................203 
6.3 lightweight_test ..................... ........203 
6.3.1測試斷言.............................203 
6.3.2用法.. ...................................204 
6.3.3測試元編程........ ..................205 
6.4 test ............................. .....................205 
6.4.1最小化測試...................... ....206 
6.4.2單元測試框架......................207 
6.4.3測試斷言........... ..................208 
6.4.4測試主體.......................... ...209 
6.4.5測試實例.............................210 
6.4.6測試夾具...... .......................212 
6.4.7測試日誌..................... ........214 
6.4.8運行參數.............................215
6.4.9高級議題.............................216 
6.5總結............. ...................................219 

第7章容器與數據結構....... .....................221 
7.1 array.......................... ......................221 
7.1.1類摘要...................... ...........222 
7.1.2操作函數.............................222 
7.1.3用法.....................................223 
7.1.4能力限制...... .......................224 
7.1.5初始化...................... ...........224 
7.1.6對比標準.............................225 
7.2 dynamic_bitset . .............................225 


Boost程序庫完全開髮指南—深入C++“準”標準庫(第4版)
XIII 
7.2.1類摘要.................................226 
7.2.2創建與賦值.... ......................227
7.2.3容器操作..............................228 
7.2.4基本運算......... .....................229 
7.2.5訪問元素....................... .......230 
7.2.6類型轉換..............................231 
7.2.7集合操作. .............................232 
7.2.8綜合運用............... ...............233 
7.3 unordered ................................ .......234 
7.3.1散列集合簡介......................234 
7.3.2散列集合的用法.... ..............236 
7.3.3散列映射簡介......................238 
7.3.4散列映射的用法..................239 
7.3.5高級議題....................... .......241 
7.4 bimap ........................................ ......243 
7.4.1類摘要.................................243 
7.4.2基本用法..............................244
7.4.3值的集合類型......................245 
7.4.4集合類型的用法............. .....246 
7.4.5使用標籤類型......................247 
7.4.6使用assign庫......... .............249 
7.4.7查找與替換..........................249 
7.4.8投射.....................................251 
7.4.9高級議題...... ........................252 
7.5 circular_buffer ....................... ........253 
7.5.1類摘要.................................253 
7.5. 2用法.....................................254 
7.5.3環形結構..... .........................255 
7.5.4空間優化................... ...........256 
7.6 tuple .................................... ............257 
7.6.1二元組............................... ..257 
7.6.2類摘要.................................258
7.6.3創建與賦值..........................258 
7.6.4訪問元素............ ..................260 
7.6.5比較操作.......................... ....261 
7.6.6輸入輸出.............................261 
7.6.7連結變量..... ........................262 
7.6.8內部結構.................... .........263 
7.6.9使用訪問者模式..................264 
7.6.10高級議題......... ..................266 
7.7 any ............................. .....................269 
7.7.1類摘要....................... ..........269 
7.7.2訪問元素.............................270 
7.7.3用法.....................................271 
7.7.4簡化操作....... ......................271 
7.7.5保存指針...................... .......272 
7.7.6輸出.....................................273
7.7.7高級議題.............................275 
7.8 variant............. ................................276 
7.8.1類摘要............ .....................276 
7.8.2訪問元素....................... ......277 
7.8.3用法.....................................278 
7.8 .4訪問器.................................279 
7.8.5高級議題....... ......................281 
7.9 multi_array......................... ............283 
7.9.1類摘要................................ .284 
7.9.2用法.....................................285 
7.9.3改變形狀和大小..................287 
7.9.4創建子視圖........................ ..287 
7.9.5適配普通數組......................289 
7.9.6高級議題............ .................290
7.10 property_tree ...............................292 
7.10.1類摘要........... ....................293 
7.10.2讀取配置信息....................294 
7.10 .3寫入配置信息....................296 
7.10.4更多用法................. ..........297 
7.10.5數據格式...........................298 
7.10.6高級議題. ..........................300 
7.11總結..................... .........................302 


Boost程序庫完全開髮指南—深入C++“準”標準庫(第4版)
XIV 
第8章算法................................................. 305 
8.1 foreach............................................305 
8.1. 1用法.....................................306 
8.1.2詳細解說..... .........................307 
8.1.3更優雅的名字................. .....308
8.1.4支持的序列類型..................308 
8.1.5存在的問題.................. ........309 
8.2 minmax....................................... ....310 
8.2.1用法.....................................310 
8.2.2存在的問題..........................311 
8.3 minmax_element .................. .........311 
8.3.1基本用法..............................312 
8.3.2其他用法..............................312 
8.4 algorithm................ ........................313 
8.4.1 clamp ..................... ..............313 
8.4.2 clamp_range .........................314 
8.4.3 hex/ unhex.............................314 
8.5總結................. ...............................316
 
第9章數學與數字............ ........................317
9.1 math.constants ...............................317 
9.1.1基本用法......... .....................318 
9.1.2高級用法....................... .......318 
9.2 integer........................................ .....319 
9.2.1整數特徵..............................319 
9.2.2標準整數類型.. ....................320 
9.2.3整數類型模板類..................322 
9.3 rational. ...........................................325 
9.3.1類摘要. ................................326 
9.3.2創建與賦值........... ...............327 
9.3.3基本運算............................. .327 
9.3.4類型轉換..............................328 
9.3.5輸入輸出....... .......................328 
9.3.6分子與分母.................... ......328
9.3.7其他議題..............................329 
9.4 ratio............ .....................................330 
9.4.1類摘要....... ..........................330 
9.4.2用法................... ..................331 
9.4.3數字單位.......................... ...331 
9.4.4字符串表示..........................333 
9.5 crc ........... ........................................333 
9.5.1類摘要.... .............................334 
9.5.2預定義的實現類............ ......334 
9.5.3用法.....................................335 
9.6 random............................................336 
9.6.1隨機數發生器......................336 
9.6.2隨機數分佈器................. .....338 
9.6.3變量發生器..........................343
9.6.4產生隨機數據塊..................344 
9.6.5真隨機數發生器................ ..345 
9.7總結............................................. ...348 

第10章操作系統相關..............................349 
10.1 system....... ....................................349 
10.1.1錯誤值........ .......................350 
10.1.2錯誤類別..................... ......350 
10.1.3錯誤代碼...........................352 
10.1.4錯誤異常..... ......................354 
10.2 chrono......................... ..................354 
10.2.1時間長度.......................... .355 
10.2.2使用時間長度....................356 
10.2.3時鐘................. ..................358 
10.2.4時間點.......................... .....360 
10.2.5綜合運用...........................361
10.3 cpu_timer .....................................363 
10.3.1時間類型..... ......................364 
10.3.2 cpu_timer ....................... ....364 
10.3.4 auto_cpu_timer...................366 
10.3.5定制輸出格式............... .....367 
10.4 filesystem.....................................368 

目錄
Boost程序庫完全開髮指南—深入C++“準”標準庫(第4版)
XV 
10.4.1類摘要............................ ...368 
10.4.2路徑表示............................370 
10.4.3可移植的文件名.... ............372 
10.4.4路徑處理............................372 
10.4.5異常處理............................375 
10.4.6文件狀態.............. ..............376 
10.4.7文件屬性............................377
10.4.8文件操作............................378 
10.4.9迭代目錄........... .................379 
10.4.10實例1........................... ....382 
10.4.11實例2...............................383 
10.4.12實例3... ............................385 
10.4.13文件流操作............... .......386 
10.5 program_options .........................387 
10.5.1概述.......... .........................387 
10.5.3選項值................... ............389 
10.5.4選項描述器........................391 
10.5.5選項描述器的用法............392 
10.5.6分析器.............................. .394 
10.5.7存儲器...............................395 
10.5.8位置選項值...... ..................396 
10.5.9環境變量.......................... ..398
10.5.10分組選項信息..................399 
10.5.11高級用法.................... ......401 
10.6總結......................................... .....404 

第11章函數與回調..................................405 
11.1 ref. .................................................405 
11.1.1類摘要...............................406 
11.1.2基本用法........ ....................407 
11.1.3工廠函數........................ ....407 
11.1.4操作包裝............................408 
11.1.5綜合應用...... ......................409 
11.1.6對比標準...................... ......410 
11.2 bind ......................................... ......411 
11.2.1工作原理...........................411 
11.2.2綁定普通函數... .................413
11.2.3綁定成員函數....................414 
11.2.4綁定成員變量............... .....415 
11.2.5綁定函數對象....................416 
11.2.6對比標準........... ................416 
11.2.7高級議題...........................417 
11.3 function ........................................421 
11.3.1類摘要.. .............................421 
11.3.2聲明形式............... ............422 
11.3.3操作函數...........................423 
11.3.4用法...................................424 
11.3.5使用ref庫........ .................425 
11.3.6用於回調.......................... .426 
11.3.7對比auto............................428 
11.3.8對比std::function...... .........429 
11.4 signals2 ...................................... ..429
11.4.1類摘要...............................430 
11.4.2操作函數........ ...................431 
11.4.3用法.......................... .........432 
11.4.4返回值...............................434 
11.4.5合併器...............................434 
11.4.6管理信號連接.......... ..........436 
11.4.7更靈活的管理信號連接.....437 
11.4.8自動管理連接.................. ..439 
11.4.9應用於觀察者模式............441 
11.4.10高級議題..................... .....444 
11.5總結.......................................... ....449 

第12章並發編程......................................451 
12.1 atomic...........................................451 
12.1.1類摘要...............................452 
12.1.2基本用法............. ..............454
12.1.3整數用法...........................455 
12.1.4並發順序一致性.......... ......456 


Boost程序庫完全開髮指南—深入C++“準”標準庫(第4版)
XVI 
12.2 thread.................... ........................458 
12.2.1 mutex ..................... ............459 
12.2.2 lock_guard..........................461 
12.2.3 unique_lock .. ......................463 
12.2.4 lock adapter ...................... ..465 
12.2.5 thread .................................467 
12.2.6使用線程.... ........................469 
12.2.7中斷線程.................... ........472 
12.2.8 thread_group ......................475 
12.2.9 call_once .......... ..................476 
12.2.10 condition_variable ............477
12.2.11 shared_mutex....................481 
12.2.12 future..................... ...........483 
12.2.13 shared_future ....................486 
12.2.14高級議題........ ..................487 
12.3 asio............................. ...................491 
12.3.1概述.......................... .........491 
12.3.2信號...................................497 
12.3.3定時器...............................501 
12.3.4網絡通信........ ....................507 
12.3.5同步通信........................ ....514 
12.3.6異步通信............................516 
12.3.7解析網絡地址..... ...............521 
12.3.8使用協程............................ 524 
12.3.9其他議題............................526
12.4總結..............................................530 

第13章組件速覽......................................533 
13.1算法.... ..........................................533 
13.2字符串和文本處理. ....................534 
13.3容器與數據結構........................ .535 
13.4迭代器..........................................536 
13.5函數對象與高級編程................536 
13.6泛型編程......................... ............538 
13.7模板元編程................................. 539 
13.8預處理元編程.............................540 
13.9並發編程........... ..........................540 
13.10數學與數字................... ............541 
13.11輸入輸出.................................. .542 
13.12操作系統相關...........................543
13.13語言特性模擬...........................543 
13.14雜項................ ............................544 
13.15總結................... .........................546 

第14章設計模式................... ...................547 
14.1創建型模式.......................... .......548 
14.2結構型模式.................................549 
14.3行為模式. ....................................552 
14.4其他模式.......... ...........................555 
14.5總結.................... ..........................557 

第15章結束語................... .......................559 
15.1未臻完美...................... ...............559 
15.2錦上添花................................ .....560 
15.3工夫在詩外.................................563
15.4臨別贈言.....................................564 
附錄A推薦書目..... ....................................565 
附錄B標準簡述........ .................................567 
附錄C關鍵字淺談.......... ........................... 571