Boost程序庫完全開發指南:深入C++「准」標准庫(第3版)

Boost程序庫完全開發指南:深入C++「准」標准庫(第3版)
定價:594
NT $ 594
  • 作者:羅劍鋒
  • 出版社:電子工業出版社
  • 出版日期:2015-03-01
  • 語言:簡體中文
  • ISBN10:7121253135
  • ISBN13:9787121253133
  • 裝訂:618頁 / 普通級 / 3-1
 

內容簡介

基於2014 年11 月發布的Boost 1.57 版,介紹了其中的所有129 個庫。國人原創精品,C++開發的好幫手,C++專家的優秀學習教材。深入解析Boost庫的內部實現,內容豐富、組織得當、概念清晰、講解細致,是廣大C++程序員和愛好者的必備好書。

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

目錄

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

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

第2章時間與日期15
2.1 timer 庫概述15
2.2 timer16
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 20
2.4.1 類摘要 20
2.4.2 用法 21
2.4.3 注意事項 22
2.5 date_time庫概述23
2.5.1 編譯與使用 24
2.5.2 基本概念 24
2.6 處理日期25
2.6.1 日期 25
2.6.2 創建日期對象 26
2.6.3 訪問日期 27
2.6.4 日期的輸出 28
2.6.5 轉換tm 結構 29
2.6.6 日期長度 29
2.6.7 日期運算 31
2.6.8 日期區間 32
2.6.9 日期區間運算 33
2.6.10 日期迭代器 35
2.6.11 其他功能 36
2.6.12 綜合運用 36
2.7 處理時間39
2.7.1 時間長度 39
2.7.2 操作時間長度 40
2.7.3 時間長度的精確度 42
2.7.4 時間點 43
2.7.5 創建時間點對象 44
2.7.6 操作時間點對象 45
2.7.7 轉換tm/time_t結構 46
2.7.8 時間區間 46
2.7.9 時間迭代器 47
2.7.10 綜合運用 47
2.8 date_time庫的高級議題50
2.8.1 編譯配置宏 50
2.8.2 自定義字面值 51
2.8.3 格式化時間 51
2.8.4 本地時間 52
2.8.5 序列化 54
2.9 總結54

第3章內存管理57
3.1 smart_ptr庫概述57
3.1.1 RAII 機制 57
3.1.2 智能指針 58
3.2 scoped_ptr59
3.2.1 類摘要 59
3.2.2 操作函數 60
3.2.3 用法 61
3.2.4 對比unique_ptr 63
3.2.5 make_unique 64
3.3 scoped_array 65
3.3.1 類摘要 65
3.3.2 用法 66
3.3.3 對比unique_ptr 66
3.3.4 使用建議 67
3.4 shared_ptr68
3.4.1 類摘要 68
3.4.2 操作函數 69
3.4.3 用法 70
3.4.4 工廠函數 72
3.4.5 應用於標准容器 73
3.4.6 應用於橋接模式 74
3.4.7 應用於工廠模式 75
3.4.8 定制刪除器 77
3.4.9 高級議題 78
3.5 shared_array82
3.5.1 類摘要 82
3.5.2 用法 82
3.6 weak_ptr83
3.6.1 類摘要 83
3.6.2 用法 84
3.6.3 enable_shared_from_this 85
3.6.4 enable_shared_from_raw 86
3.6.5 打破循環引用 88
3.7 intrusive_ptr 89
3.7.1 類摘要 89
3.7.2 用法 90
3.7.3 引用計數器 91
3.8 pool 庫概述92
3.9 pool 93
3.9.1 類摘要 93
3.9.2 操作函數 94
3.9.3 用法 95
3.10 object_pool95
3.10.1 類摘要 96
3.10.2 操作函數 96
3.10.3 用法 97
3.10.4 使用更多的構造參數 97
3.11 singleton_pool99
3.11.1 類摘要 99
3.11.2 用法 99
3.12 pool_alloc100
3.13 總結101

第4章實用工具103
4.1 noncopyable 103
4.1.1 原理 104
4.1.2 用法 104
4.1.3 實現 105
4.2 ignore_unused106
4.2.1 基本用法 106
4.2.2 模板用法 107
4.3 optional 108
4.3.1 類摘要 108
4.3.2 操作函數 109
4.3.3 用法 111
4.3.4 工廠函數 112
4.4 assign 113
4.4.1 list_inserter 113
4.4.2 使用operator+= 114
4.4.3 使用operator () 115
4.4.4 generic_list 116
4.4.5 初始化容器 117
4.4.6 減少重復輸入 119
4.4.7 操作非標准容器 120
4.4.8 其他議題 121
4.5 swap 122
4.5.1 原理 122
4.5.2 交換數組 123
4.5.3 特化std::swap 124
4.5.4 特化ADL 可找到的swap 125
4.5.5 使用建議 126
4.6 singleton126
4.6.1 類摘要 126
4.6.2 用法 127
4.7 tribool128
4.7.1 類摘要 129
4.7.2 用法 130
4.7.3 為第三態更名 131
4.7.4 輸入/輸出 131
4.7.5 與optional<bool>的區別 132
4.8 operators133
4.8.1 基本運算概念 134
4.8.2 算術操作符的用法 135
4.8.3 基類鏈 137
4.8.4 復合運算概念 138
4.8.5 相等與等價 140
4.8.6 解引用操作符 141
4.8.7 下標操作符 142
4.8.8 bool轉型操作符 143
4.8.9 二元操作符 145
4.9 exception145
4.9.1 標准庫中的異常 146
4.9.2 類摘要 146
4.9.3 向異常傳遞信息 148
4.9.4 錯誤信息類 149
4.9.5 包裝標准異常 151
4.9.6 使用函數拋出異常 152
4.9.7 獲得更多的調試信息 152
4.9.8 高級議題 154
4.10 uuid 155
4.10.1 類摘要 156
4.10.2 用法 157
4.10.3 生成器 158
4.10.4 增強的uuid類 160
4.10.5 轉換字符串 162
4.10.6 SHA1 摘要算法 163
4.11 config 164
4.11.1 BOOST_STRINGIZE 164
4.11.2 BOOST_STATIC_CONSTANT 165
4.12 utility165
4.12.1 BOOST_BINARY 165
4.12.2 BOOST_CURRENT_FUNCTION 167
4.13 總結168

第5章字符串與文本處理171
5.1 lexical_cast171
5.1.1 函數聲明 172
5.1.2 用法 172
5.1.3 錯誤處理 173
5.1.4 對轉換對象的要求 174
5.1.5 應用於自定義類 175
5.1.6 對比C++11 標准 176
5.2 format177
5.2.1 簡單的例子 178
5.2.2 輸入操作符% 179
5.2.3 類摘要 180
5.2.4 格式化語法 182
5.2.5 format 的性能 183
5.2.6 高級用法 183
5.3 string_ref184
5.3.1 類摘要 185
5.3.2 用法 186
5.4 string_algo 188
5.4.1 簡單的例子 188
5.4.2 string_algo概述 189
5.4.3 大小寫轉換 190
5.4.4 判斷式(算法) 191
5.4.5 判斷式(函數對象) 193
5.4.6 分類 193
5.4.7 修剪 194
5.4.8 查找 195
5.4.9 替換與刪除 197
5.4.10 分割 199
5.4.11 合並 200
5.4.12 查找(分割)迭代器 201
5.5 tokenizer203
5.5.1 類摘要 203
5.5.2 用法 204
5.5.3 分詞函數對象 204
5.5.4 char_separator 205
5.5.5 escaped_list_separator 206
5.5.6 offset_separator 207
5.5.7 tokenizer庫的缺陷 208
5.6 xpressive 210
5.6.1 兩種使用方式 210
5.6.2 正則表達式語法簡介 211
5.6.3 類摘要 212
5.6.4 正則匹配 214
5.6.5 正則查找 217
5.6.6 正則替換 218
5.6.7 正則迭代 219
5.6.8 正則分詞 221
5.6.9 對比boostregex 222
5.6.10 高級議題 223
5.7 總結225

第6章正確性與測試227
6.1 assert 227
6.1.1 基本用法 227
6.1.2 禁用斷言 229
6.1.3 擴展用法 229
6.2 static_assert231
6.2.1 定義 231
6.2.2 用法 231
6.2.3 使用建議 233
6.3 lightweight_test233
6.3.1 測試斷言 233
6.3.2 用法 234
6.3.3 測試元編程 235
6.4 test235
6.4.1 最小化的測試套件 236
6.4.2 單元測試框架簡介 237
6.4.3 測試斷言 238
6.4.4 測試用例與測試套件 239
6.4.5 測試實例 240
6.4.6 測試夾具 242
6.4.7 測試日志 244
6.4.8 運行參數 245
6.4.9 函數執行監視器 246
6.4.10 程序執行監視器 249
6.4.11 高級議題 249
6.5 總結251
……
第7章 容器與數據結構
第8章 算法
第9章 數學與數字
第10章 操作系統相關
第11章 函數與回調
第12章 並發編程
第13章 Boost 組件速覽
第14章 Boost 與設計模式
第15章 結束語
附錄A 推薦書目
附錄B C++標准簡述
附錄C C++關鍵字淺談
 

推薦序

最近一年我電話面試了數十位C++應聘者,慣用的暖場問題是「工作中使用過STL的哪些組件?用過Boost的哪些組件?」得到的答案大多集中在vector、map和shared_ptr。如果對方是在校學生,我一般會問問vector或map的內部實現、各種操作的復雜度,以及迭代器失效的可能場景。如果是有經驗的程序員,我還會追問shared_ptr的線程安全性、循環引用的后果及如何避免、weak_ptr的作用等。如果這些都回答得不錯,進一步還可以問問如何實現線程安全的引用計數,如何定制刪除動作等。這些問題讓我能迅速地判別對方的C++水平。
網路書店 類別 折扣 價格
  1. 新書
    $594