-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
C++標準庫(第2版) 版權信息
- ISBN:9787121260896
- 條形碼:9787121260896 ; 978-7-121-26089-6
- 裝幀:平塑
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
C++標準庫(第2版) 本書特色
本書是全球 C 經典權威參考書籍時隔 12 年,基于 C 11 標準的全新重大升級。標準庫提供了一組公共類和接口,極大地拓展了 C 語言核心功能。《C 標準庫(第2版)》詳細講解了每一標準庫組件,包括其設計目的和方法、復雜概念的剖析、實用而高效的編程細節、存在的陷阱、重要的類和函數,又輔以大量用 C 11 標準實現的實用代碼范例。除覆蓋全新組件、特性外,本書一如前版,重點著眼于標準模板庫(STL),涉及容器、迭代器、函數對象以及 STL 算法。此外,本書同樣關注 lambda 表達式、基于區間的for循環、move語義及可變參數模板等標準庫中的新式 C 編程風格及其影響。
C++標準庫(第2版) 內容簡介
本書是優選C++經典非常不錯參考書籍時隔12年,基于C++11標準的全新重大升級。標準庫提供了一組公共類和接口,極大地拓展了C++語言核心功能。《C++標準庫(第2版)》詳細講解了每一標準庫組件,包括其設計目的和方法、復雜概念的剖析、實用而高效的編程細節、存在的陷阱、重要的類和函數,又輔以大量用C++11標準實現的實用代碼范例。除覆蓋全新組件、特性外,本書一如前版,重點著眼于標準模板庫(STL),涉及容器、迭代器、函數對象以及STL算法。此外,本書同樣關注lambda表達式、基于區間的for循環、move語義及可變參數模板等標準庫中的新式C++編程風格及其影響。
C++標準庫(第2版) 目錄
第 2 版譯序 xxi
第 2 版序言 xxiii
第 2 版致謝 xxiv
第 1 版序言 xxv
第 1 版致謝 xxvi
1 關于本書 1
1.1 緣起 1
1.2 閱讀前的必要基礎 2
1.3 本書風格與結構 2
1.4 如何閱讀本書 4
1.5 目前發展情勢 5
1.6 范例代碼及額外信息 5
1.7 反饋 5
2 C 及標準庫簡介 7
2.1 C Standard 的歷史 7
2.1.1 C 11 Standard 常見疑問 8
2.1.2 C 98 和 C 11 的兼容性 9
2.2 復雜度與 Big-O 標記 10
3 語言新特性 13
3.1 C 11 語言新特性 13
3.1.1 微小但重要的語法提升 13
3.1.2 以 auto 完成類型自動推導 14
3.1.3 一致性初始化(Uniform Initialization)與初值列(Initializer List) 15
3.1.4 Range-Based for 循環 17
3.1.5 Move 語義和 Rvalue Reference 19
3.1.6 新式的字符串字面常量(String Literal) 23
3.1.7 關鍵字 noexcept 24
3.1.8 關鍵字 constexpr 26
3.1.9 嶄新的 Template 特性 26
3.1.10 Lambda 28
3.1.11 關鍵字 decltype 32
3.1.12 新的函數聲明語法(New Function Declaration Syntax) 32
3.1.13 帶領域的(Scoped) Enumeration 32
3.1.14 新的基礎類型(New Fundamental Data Type) 33
3.2 雖舊猶新的語言特性 33
3.2.1 基礎類型的明確初始化(Explicit Initialization for Fundamental Type) 37
3.2.2 main()定義式 37
4 一般概念 39
4.1 命名空間(Namespace)std 39
4.2 頭文件(Header File) 40
4.3 差錯和異常(Error and Exception)的處理 41
4.3.1 標準的 Exception Class(異常類) 41
4.3.2 異常類(Exception Class)的成員 44
4.3.3 以 Class exception_ptr 傳遞異常 52
4.3.4 拋出標準異常 53
4.3.5 自標準異常類派生 54
4.4 Callable Object(可被調用的對象) 54
4.5 并發與多線程 55
4.6 分配器(Allocator) 57
5 通用工具 59
5.1 Pair 和 Tuple 60
5.1.1 Pair 60
5.1.2 Tuple(不定數的值組) 68
5.1.3 Tuple 的輸入/輸出 74
5.1.4 tuple 和 pair 轉換 75
5.2 Smart Pointer(智能指針) 76
5.2.1 Class shared_ptr 76
5.2.2 Class weak_ptr 84
5.2.3 誤用 Shared Pointer 89
5.2.4 細究 Shared Pointer 和 Weak Pointer 92
5.2.5 Class unique_ptr 98
5.2.6 細究 Class unique_ptr 110
5.2.7 Class auto_ptr 113
5.2.8 Smart Pointer 結語 114
5.3 數值的極值(Numeric Limit) 115
5.4 Type Trait 和 Type Utility 122
5.4.1 Type Trait 的目的 122
5.4.2 細究 Type Trait 125
5.4.3 Reference Wrapper(外覆器) 132
5.4.4 Function Type Wrapper(外覆器) 133
5.5 輔助函數 134
5.5.1 挑選*小值和*大值 134
5.5.2 兩值互換(Swapping) 136
5.5.3 增補的“比較操作符”(Comparison Operator) 138
5.6 Class ratio<> 的編譯期分數運算 140
5.7 Clock 和 Timer 143
5.7.1 Chrono 程序庫概觀 143
5.7.2 Duration(時間段) 144
5.7.3 Clock(時鐘)和 Timepoint(時間點) 149
5.7.4 C 和 POSIX 提供的 Date/Time 函數 157
5.7.5 以計時器停滯線程(Blocking with Timer) 160
5.8 頭文件 <cstddef>、<cstdlib> 和 <cstring> 161
5.8.1 <cstddef> 內的各項定義 161
5.8.2 <cstdlib> 內的各種定義 162
5.8.3 <cstring> 中的定義式 163
6 標準模板庫 165
6.1 STL 組件(Component) 165
6.2 容器(Container) 167
6.2.1 序列式容器(Sequence Container) 169
6.2.2 關聯式容器(Associative Container) 177
6.2.3 無序容器(Unordered Container) 180
6.2.4 關聯式數組(Associative Array) 185
6.2.5 其他容器 187
6.2.6 容器適配器(Container Adapter) 188
6.3 迭代器(Iterator) 188
6.3.1 關聯式( Associative )及無序 ( Unordered )容器的更多實例 193
6.3.2 迭代器種類(Iterator Category) 198
6.4 算法(Algorithm) 199
6.4.1 區間(Range) 203
6.4.2 處理多重區間(Multiple Ranges) 207
6.5 迭代器之適配器(Iterator Adapter) 210
6.5.1 Insert Iterator(安插型迭代器) 210
6.5.2 Stream Iterator(串流迭代器) 212
6.5.3 Reverse Iterator(反向迭代器) 214
6.5.4 Move Iterator(搬移迭代器) 216
6.6 用戶自定義的泛型函數(User-Defined Generic Function) 216
6.7 更易型算法(Manipulating Algorithm) 217
6.7.1 移除(Removing)元素 218
6.7.2 更易 Associative(關聯式)和 Unordered(無序)容器 221
6.7.3 算法 vs. 成員函數 223
6.8 以函數作為算法的實參 224
6.8.1 以函數作為算法實參的實例示范 224
6.8.2 判斷式(Predicate) 226
6.9 使用 Lambda 229
6.10 函數對象(Function Object) 233
6.10.1 定義一個函數對象 233
6.10.2 預定義的函數對象 239
6.10.3 Binder 241
6.10.4 函數對象 vs. Lambda 243
6.11 容器內的元素 244
6.11.1 容器元素的必要條件 244
6.11.2 Value 語義 vs. Reference 語義 245
6.12 STL 內部的錯誤和異常 245
6.12.1 錯誤處理(Error Handling) 246
6.12.2 異常處理(Exception Handling) 248
6.13 擴展 STL 250
6.13.1 整合更多 Type 250
6.13.2 派生自 STL Type 251
7 STL 容器 253
7.1 容器的共通能力和共通操作 254
7.1.1 容器的共通能力 254
7.1.2 容器的共通操作 254
7.1.3 容器提供的類型 260
7.2 Array 261
7.2.1 Array 的能力 261
7.2.2 Array 的操作 263
7.2.3 把array當成 C-Style Array 267
7.2.4 異常處理( Exception Handling ) 268
7.2.5 Tuple 接口 268
7.2.6 Array 運用實例 268
7.3 Vector 270
7.3.1 Vector 的能力 270
7.3.2 Vector 的操作 273
7.3.3 將 Vector 當作 C-Style Array 使用 278
7.3.4 異常處理( Exception Handling ) 278
7.3.5 Vector 使用實例 279
7.3.6 Class vector<bool> 281
7.4 Deque 283
7.4.1 Deque 的能力 284
7.4.2 Deque 的操作函數 284
7.4.3 Exception Handling 288
7.4.4 Deque 運用實例 288
7.5 List 290
7.5.1 List 的能力 290
7.5.2 List 的操作 291
7.5.3 異常處理( Exception Handling ) 296
7.5.4 List 運用實例 298
7.6 Forward List 300
7.6.1 Forward List 的能力 300
7.6.2 Forward List 的操作 302
7.6.3 異常處理( Exception Handling ) 311
7.6.4 Forward List 運用實例 312
7.7 Set 和 Multiset 314
7.7.1 Set 和 Multiset 的能力 315
7.7.2 Set and Multiset 的操作函數 316
7.7.3 異常處理( Exception Handling ) 325
7.7.4 Set 和 Multiset 運用實例 325
7.7.5 運行期指定排序準則 328
7.8 Map 和 Multimap 331
7.8.1 Map 和 Multimap 的能力 332
7.8.2 Map 和 Multimap 的操作函數 333
7.8.3 將 Map 視為關聯式數組( Associative Array ) 343
7.8.4 異常處理( Exception Handling ) 345
7.8.5 Map 和 Multimap 運用實例 345
7.8.6 綜合實例:運用 Map、 String 并于運行期指定排序準則 351
7.9 無序容器( Unordered Container ) 355
7.9.1 Unordered 容器的能力 357
7.9.2 創建和控制 Unordered 容器 359
7.9.3 Unordered 容器的其他操作 367
7.9.4 Bucket 接口 374
7.9.5 使用 Unordered Map 作為 Associative Array 374
7.9.6 異常處理( Exception Handling ) 375
7.9.7 Unordered 容器的運用實例 375
7.10 其他 STL 容器 385
7.10.1 String 作為一種 STL 容器 385
7.10.2 C-Style Array 作為一種 STL 容器 386
7.11 實現 Reference 語義 388
7.12 各種容器的使用時機 392
8 細探 STL 容器成員 397
8.1 容器內的類型 397
8.2 創建、復制和銷毀( Create, Copy, and Destroy ) 400
8.3 非更易型操作( Nonmodifying Operation ) 403
8.3.1 大小相關操作( Size Operation ) 403
8.3.2 元素比較( Comparison Operation ) 404
8.3.3 Associative 和 Unordered 容器特有的非更易型操作 404
8.4 賦值( Assignment ) 406
8.5 元素直接訪問( Direct Element Access ) 408
8.6 “產出迭代器”之各項操作 410
8.7 安插和移除( Inserting and Removing )元素 411
8.7.1 安插單一元素( Inserting Single Element ) 411
8.7.2 安插多重元素( Inserting Multiple Elements ) 416
8.7.3 移除元素( Removing Element ) 417
8.7.4 重設大。 Resizing ) 420
8.8 List 和 Forward List 的特殊成員函數 420
8.8.1 特殊成員函數(針對 List 和 Forward List ) 420
8.8.2 特殊成員函數(只針對 Forward List ) 423
8.9 容器的策略接口( Policy Interface ) 427
8.9.1 非更易型策略函數( Nonmodifying Policy Function ) 427
8.9.2 更易型策略函數( Modifying Policy Function ) 428
8.9.3 Unordered 容器的 Bucket 相關接口 429
8.10 對分配器( Allocator )的支持 430
8.10.1 基本的分配器成員( Fundamental Allocator Member ) 430
8.10.2 帶有“可選之分配器參數”的構造函數 430
9 STL 迭代器 433
9.1 迭代器頭文件9
C++標準庫(第2版) 作者簡介
尼古拉·約祖蒂斯,獨立技術顧問,曾為電信、交通、金融和制造業設計過大中型軟件系統。他還是C 標準委員會工作組早期成員,并因撰寫的權威C 圖書而享有盛名。除1999年出版的本書第1版(享譽全球的C 暢銷圖書)外,他還是《C Templates: The Complete Guide》和《SOA實踐指南:分布式系統設計的藝術》的作者。
侯捷,海峽兩岸著名的電腦技術自由作家,對于技術的鉆研和發表,有獨特的品性與堅持。作品涵蓋著、譯、評三方面,散見于各種刊特、媒體、網站論壇,深受讀者喜愛和尊敬。
- >
有舍有得是人生
- >
名家帶你讀魯迅:故事新編
- >
隨園食單
- >
羅曼·羅蘭讀書隨筆-精裝
- >
龍榆生:詞曲概論/大家小書
- >
上帝之肋:男人的真實旅程
- >
莉莉和章魚
- >
山海經