C++標(biāo)準(zhǔn)庫(kù)(第2版)
-
>
決戰(zhàn)行測(cè)5000題(言語(yǔ)理解與表達(dá))
-
>
軟件性能測(cè)試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書(shū)第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門(mén)到精通-(附贈(zèng)1DVD.含語(yǔ)音視頻教學(xué)+辦公模板+PDF電子書(shū))
C++標(biāo)準(zhǔn)庫(kù)(第2版) 版權(quán)信息
- ISBN:9787121260896
- 條形碼:9787121260896 ; 978-7-121-26089-6
- 裝幀:平塑
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類(lèi):>>
C++標(biāo)準(zhǔn)庫(kù)(第2版) 本書(shū)特色
本書(shū)是全球 C 經(jīng)典權(quán)威參考書(shū)籍時(shí)隔 12 年,基于 C 11 標(biāo)準(zhǔn)的全新重大升級(jí)。標(biāo)準(zhǔn)庫(kù)提供了一組公共類(lèi)和接口,極大地拓展了 C 語(yǔ)言核心功能!禖 標(biāo)準(zhǔn)庫(kù)(第2版)》詳細(xì)講解了每一標(biāo)準(zhǔn)庫(kù)組件,包括其設(shè)計(jì)目的和方法、復(fù)雜概念的剖析、實(shí)用而高效的編程細(xì)節(jié)、存在的陷阱、重要的類(lèi)和函數(shù),又輔以大量用 C 11 標(biāo)準(zhǔn)實(shí)現(xiàn)的實(shí)用代碼范例。除覆蓋全新組件、特性外,本書(shū)一如前版,重點(diǎn)著眼于標(biāo)準(zhǔn)模板庫(kù)(STL),涉及容器、迭代器、函數(shù)對(duì)象以及 STL 算法。此外,本書(shū)同樣關(guān)注 lambda 表達(dá)式、基于區(qū)間的for循環(huán)、move語(yǔ)義及可變參數(shù)模板等標(biāo)準(zhǔn)庫(kù)中的新式 C 編程風(fēng)格及其影響。
C++標(biāo)準(zhǔn)庫(kù)(第2版) 內(nèi)容簡(jiǎn)介
本書(shū)是優(yōu)選C++經(jīng)典非常不錯(cuò)參考書(shū)籍時(shí)隔12年,基于C++11標(biāo)準(zhǔn)的全新重大升級(jí)。標(biāo)準(zhǔn)庫(kù)提供了一組公共類(lèi)和接口,極大地拓展了C++語(yǔ)言核心功能。《C++標(biāo)準(zhǔn)庫(kù)(第2版)》詳細(xì)講解了每一標(biāo)準(zhǔn)庫(kù)組件,包括其設(shè)計(jì)目的和方法、復(fù)雜概念的剖析、實(shí)用而高效的編程細(xì)節(jié)、存在的陷阱、重要的類(lèi)和函數(shù),又輔以大量用C++11標(biāo)準(zhǔn)實(shí)現(xiàn)的實(shí)用代碼范例。除覆蓋全新組件、特性外,本書(shū)一如前版,重點(diǎn)著眼于標(biāo)準(zhǔn)模板庫(kù)(STL),涉及容器、迭代器、函數(shù)對(duì)象以及STL算法。此外,本書(shū)同樣關(guān)注lambda表達(dá)式、基于區(qū)間的for循環(huán)、move語(yǔ)義及可變參數(shù)模板等標(biāo)準(zhǔn)庫(kù)中的新式C++編程風(fēng)格及其影響。
C++標(biāo)準(zhǔn)庫(kù)(第2版) 目錄
第 2 版譯序 xxi
第 2 版序言 xxiii
第 2 版致謝 xxiv
第 1 版序言 xxv
第 1 版致謝 xxvi
1 關(guān)于本書(shū) 1
1.1 緣起 1
1.2 閱讀前的必要基礎(chǔ) 2
1.3 本書(shū)風(fēng)格與結(jié)構(gòu) 2
1.4 如何閱讀本書(shū) 4
1.5 目前發(fā)展情勢(shì) 5
1.6 范例代碼及額外信息 5
1.7 反饋 5
2 C 及標(biāo)準(zhǔn)庫(kù)簡(jiǎn)介 7
2.1 C Standard 的歷史 7
2.1.1 C 11 Standard 常見(jiàn)疑問(wèn) 8
2.1.2 C 98 和 C 11 的兼容性 9
2.2 復(fù)雜度與 Big-O 標(biāo)記 10
3 語(yǔ)言新特性 13
3.1 C 11 語(yǔ)言新特性 13
3.1.1 微小但重要的語(yǔ)法提升 13
3.1.2 以 auto 完成類(lèi)型自動(dòng)推導(dǎo) 14
3.1.3 一致性初始化(Uniform Initialization)與初值列(Initializer List) 15
3.1.4 Range-Based for 循環(huán) 17
3.1.5 Move 語(yǔ)義和 Rvalue Reference 19
3.1.6 新式的字符串字面常量(String Literal) 23
3.1.7 關(guān)鍵字 noexcept 24
3.1.8 關(guān)鍵字 constexpr 26
3.1.9 嶄新的 Template 特性 26
3.1.10 Lambda 28
3.1.11 關(guān)鍵字 decltype 32
3.1.12 新的函數(shù)聲明語(yǔ)法(New Function Declaration Syntax) 32
3.1.13 帶領(lǐng)域的(Scoped) Enumeration 32
3.1.14 新的基礎(chǔ)類(lèi)型(New Fundamental Data Type) 33
3.2 雖舊猶新的語(yǔ)言特性 33
3.2.1 基礎(chǔ)類(lèi)型的明確初始化(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 差錯(cuò)和異常(Error and Exception)的處理 41
4.3.1 標(biāo)準(zhǔn)的 Exception Class(異常類(lèi)) 41
4.3.2 異常類(lèi)(Exception Class)的成員 44
4.3.3 以 Class exception_ptr 傳遞異常 52
4.3.4 拋出標(biāo)準(zhǔn)異常 53
4.3.5 自標(biāo)準(zhǔn)異常類(lèi)派生 54
4.4 Callable Object(可被調(diào)用的對(duì)象) 54
4.5 并發(fā)與多線(xiàn)程 55
4.6 分配器(Allocator) 57
5 通用工具 59
5.1 Pair 和 Tuple 60
5.1.1 Pair 60
5.1.2 Tuple(不定數(shù)的值組) 68
5.1.3 Tuple 的輸入/輸出 74
5.1.4 tuple 和 pair 轉(zhuǎn)換 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 細(xì)究 Shared Pointer 和 Weak Pointer 92
5.2.5 Class unique_ptr 98
5.2.6 細(xì)究 Class unique_ptr 110
5.2.7 Class auto_ptr 113
5.2.8 Smart Pointer 結(jié)語(yǔ) 114
5.3 數(shù)值的極值(Numeric Limit) 115
5.4 Type Trait 和 Type Utility 122
5.4.1 Type Trait 的目的 122
5.4.2 細(xì)究 Type Trait 125
5.4.3 Reference Wrapper(外覆器) 132
5.4.4 Function Type Wrapper(外覆器) 133
5.5 輔助函數(shù) 134
5.5.1 挑選*小值和*大值 134
5.5.2 兩值互換(Swapping) 136
5.5.3 增補(bǔ)的“比較操作符”(Comparison Operator) 138
5.6 Class ratio<> 的編譯期分?jǐn)?shù)運(yùn)算 140
5.7 Clock 和 Timer 143
5.7.1 Chrono 程序庫(kù)概觀 143
5.7.2 Duration(時(shí)間段) 144
5.7.3 Clock(時(shí)鐘)和 Timepoint(時(shí)間點(diǎn)) 149
5.7.4 C 和 POSIX 提供的 Date/Time 函數(shù) 157
5.7.5 以計(jì)時(shí)器停滯線(xiàn)程(Blocking with Timer) 160
5.8 頭文件 <cstddef>、<cstdlib> 和 <cstring> 161
5.8.1 <cstddef> 內(nèi)的各項(xiàng)定義 161
5.8.2 <cstdlib> 內(nèi)的各種定義 162
5.8.3 <cstring> 中的定義式 163
6 標(biāo)準(zhǔn)模板庫(kù) 165
6.1 STL 組件(Component) 165
6.2 容器(Container) 167
6.2.1 序列式容器(Sequence Container) 169
6.2.2 關(guān)聯(lián)式容器(Associative Container) 177
6.2.3 無(wú)序容器(Unordered Container) 180
6.2.4 關(guān)聯(lián)式數(shù)組(Associative Array) 185
6.2.5 其他容器 187
6.2.6 容器適配器(Container Adapter) 188
6.3 迭代器(Iterator) 188
6.3.1 關(guān)聯(lián)式( Associative )及無(wú)序 ( Unordered )容器的更多實(shí)例 193
6.3.2 迭代器種類(lèi)(Iterator Category) 198
6.4 算法(Algorithm) 199
6.4.1 區(qū)間(Range) 203
6.4.2 處理多重區(qū)間(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 用戶(hù)自定義的泛型函數(shù)(User-Defined Generic Function) 216
6.7 更易型算法(Manipulating Algorithm) 217
6.7.1 移除(Removing)元素 218
6.7.2 更易 Associative(關(guān)聯(lián)式)和 Unordered(無(wú)序)容器 221
6.7.3 算法 vs. 成員函數(shù) 223
6.8 以函數(shù)作為算法的實(shí)參 224
6.8.1 以函數(shù)作為算法實(shí)參的實(shí)例示范 224
6.8.2 判斷式(Predicate) 226
6.9 使用 Lambda 229
6.10 函數(shù)對(duì)象(Function Object) 233
6.10.1 定義一個(gè)函數(shù)對(duì)象 233
6.10.2 預(yù)定義的函數(shù)對(duì)象 239
6.10.3 Binder 241
6.10.4 函數(shù)對(duì)象 vs. Lambda 243
6.11 容器內(nèi)的元素 244
6.11.1 容器元素的必要條件 244
6.11.2 Value 語(yǔ)義 vs. Reference 語(yǔ)義 245
6.12 STL 內(nèi)部的錯(cuò)誤和異常 245
6.12.1 錯(cuò)誤處理(Error Handling) 246
6.12.2 異常處理(Exception Handling) 248
6.13 擴(kuò)展 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 容器提供的類(lèi)型 260
7.2 Array 261
7.2.1 Array 的能力 261
7.2.2 Array 的操作 263
7.2.3 把a(bǔ)rray當(dāng)成 C-Style Array 267
7.2.4 異常處理( Exception Handling ) 268
7.2.5 Tuple 接口 268
7.2.6 Array 運(yùn)用實(shí)例 268
7.3 Vector 270
7.3.1 Vector 的能力 270
7.3.2 Vector 的操作 273
7.3.3 將 Vector 當(dāng)作 C-Style Array 使用 278
7.3.4 異常處理( Exception Handling ) 278
7.3.5 Vector 使用實(shí)例 279
7.3.6 Class vector<bool> 281
7.4 Deque 283
7.4.1 Deque 的能力 284
7.4.2 Deque 的操作函數(shù) 284
7.4.3 Exception Handling 288
7.4.4 Deque 運(yùn)用實(shí)例 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 運(yùn)用實(shí)例 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 運(yùn)用實(shí)例 312
7.7 Set 和 Multiset 314
7.7.1 Set 和 Multiset 的能力 315
7.7.2 Set and Multiset 的操作函數(shù) 316
7.7.3 異常處理( Exception Handling ) 325
7.7.4 Set 和 Multiset 運(yùn)用實(shí)例 325
7.7.5 運(yùn)行期指定排序準(zhǔn)則 328
7.8 Map 和 Multimap 331
7.8.1 Map 和 Multimap 的能力 332
7.8.2 Map 和 Multimap 的操作函數(shù) 333
7.8.3 將 Map 視為關(guān)聯(lián)式數(shù)組( Associative Array ) 343
7.8.4 異常處理( Exception Handling ) 345
7.8.5 Map 和 Multimap 運(yùn)用實(shí)例 345
7.8.6 綜合實(shí)例:運(yùn)用 Map、 String 并于運(yùn)行期指定排序準(zhǔn)則 351
7.9 無(wú)序容器( Unordered Container ) 355
7.9.1 Unordered 容器的能力 357
7.9.2 創(chuàng)建和控制 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 容器的運(yùn)用實(shí)例 375
7.10 其他 STL 容器 385
7.10.1 String 作為一種 STL 容器 385
7.10.2 C-Style Array 作為一種 STL 容器 386
7.11 實(shí)現(xiàn) Reference 語(yǔ)義 388
7.12 各種容器的使用時(shí)機(jī) 392
8 細(xì)探 STL 容器成員 397
8.1 容器內(nèi)的類(lèi)型 397
8.2 創(chuàng)建、復(fù)制和銷(xiāo)毀( Create, Copy, and Destroy ) 400
8.3 非更易型操作( Nonmodifying Operation ) 403
8.3.1 大小相關(guān)操作( Size Operation ) 403
8.3.2 元素比較( Comparison Operation ) 404
8.3.3 Associative 和 Unordered 容器特有的非更易型操作 404
8.4 賦值( Assignment ) 406
8.5 元素直接訪(fǎng)問(wèn)( Direct Element Access ) 408
8.6 “產(chǎn)出迭代器”之各項(xiàng)操作 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 重設(shè)大。 Resizing ) 420
8.8 List 和 Forward List 的特殊成員函數(shù) 420
8.8.1 特殊成員函數(shù)(針對(duì) List 和 Forward List ) 420
8.8.2 特殊成員函數(shù)(只針對(duì) Forward List ) 423
8.9 容器的策略接口( Policy Interface ) 427
8.9.1 非更易型策略函數(shù)( Nonmodifying Policy Function ) 427
8.9.2 更易型策略函數(shù)( Modifying Policy Function ) 428
8.9.3 Unordered 容器的 Bucket 相關(guān)接口 429
8.10 對(duì)分配器( Allocator )的支持 430
8.10.1 基本的分配器成員( Fundamental Allocator Member ) 430
8.10.2 帶有“可選之分配器參數(shù)”的構(gòu)造函數(shù) 430
9 STL 迭代器 433
9.1 迭代器頭文件9
C++標(biāo)準(zhǔn)庫(kù)(第2版) 作者簡(jiǎn)介
尼古拉·約祖蒂斯,獨(dú)立技術(shù)顧問(wèn),曾為電信、交通、金融和制造業(yè)設(shè)計(jì)過(guò)大中型軟件系統(tǒng)。他還是C 標(biāo)準(zhǔn)委員會(huì)工作組早期成員,并因撰寫(xiě)的權(quán)威C 圖書(shū)而享有盛名。除1999年出版的本書(shū)第1版(享譽(yù)全球的C 暢銷(xiāo)圖書(shū))外,他還是《C Templates: The Complete Guide》和《SOA實(shí)踐指南:分布式系統(tǒng)設(shè)計(jì)的藝術(shù)》的作者。
侯捷,海峽兩岸著名的電腦技術(shù)自由作家,對(duì)于技術(shù)的鉆研和發(fā)表,有獨(dú)特的品性與堅(jiān)持。作品涵蓋著、譯、評(píng)三方面,散見(jiàn)于各種刊特、媒體、網(wǎng)站論壇,深受讀者喜愛(ài)和尊敬。
- >
中國(guó)歷史的瞬間
- >
中國(guó)人在烏蘇里邊疆區(qū):歷史與人類(lèi)學(xué)概述
- >
有舍有得是人生
- >
回憶愛(ài)瑪儂
- >
名家?guī)阕x魯迅:朝花夕拾
- >
新文學(xué)天穹兩巨星--魯迅與胡適/紅燭學(xué)術(shù)叢書(shū)(紅燭學(xué)術(shù)叢書(shū))
- >
李白與唐代文化
- >
推拿