注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)C++標(biāo)準(zhǔn)程序庫:自修教程與參考手冊

C++標(biāo)準(zhǔn)程序庫:自修教程與參考手冊

C++標(biāo)準(zhǔn)程序庫:自修教程與參考手冊

定 價(jià):¥108.00

作 者: (德)Nicolai M. Josuttis著;侯捷,孟巖譯
出版社: 華中科技大學(xué)出版社
叢編項(xiàng): 侯捷譯作系列
標(biāo) 簽: C++

ISBN: 9787560927824 出版時(shí)間: 2002-09-01 包裝: 平裝
開本: 23cm 頁數(shù): 800 字?jǐn)?shù):  

內(nèi)容簡介

  《C++標(biāo)準(zhǔn)程序庫—自修教程與參考手冊》C++標(biāo)準(zhǔn)程序庫提供一組通用類別(classes)和接口(interfaces),可大幅擴(kuò)充C++核心語言。由于程序庫本身并不容易,為了完整運(yùn)用其組件并從其強(qiáng)大的威力中獲得幫助,你需要一份完善的資源,而非一份僅僅陳列類和函數(shù)的普通文檔。《TheC++StandardLibrary》(中文版《C++標(biāo)準(zhǔn)程序庫》)不僅對每一個(gè)程序庫組件提供范圍廣泛的說明,也對繁雜的感念提供清楚明亮的解釋,并描述高效運(yùn)用這些組件時(shí)需要的實(shí)際編程細(xì)節(jié),提出一個(gè)又一個(gè)的范例程序。這本包含最新資料的完整書籍,反映出被ANSI/ISOC++語言標(biāo)準(zhǔn)規(guī)格書納入的C++標(biāo)準(zhǔn)程序庫的結(jié)構(gòu)。更明確地說,本書將焦點(diǎn)放在標(biāo)準(zhǔn)模板庫(StandardTemplateLibrary)身上,檢驗(yàn)其中的容器(containers)、迭代器(iterators)、仿函數(shù)(functors)和算法(algorithms)。你還可以找到特殊容器、字符串(strings)、數(shù)值類別、國際化議題、IOStream。每一個(gè)組件都有深刻的呈現(xiàn),包括其介紹、設(shè)計(jì)、運(yùn)用實(shí)例、細(xì)部解說、陷阱、意想不到的危險(xiǎn),以及相關(guān)類別和函數(shù)的確切標(biāo)記(signature)和定義。一份見解深刻的基礎(chǔ)概念介紹和一個(gè)程序庫綜合鳥瞰,會對新手帶來快速的提升。《TheC++StandardLibrary》范圍廣泛、詳細(xì)、可讀性高、實(shí)用,是值得你一再查閱的C++寶貴資源。本書網(wǎng)站http://www.josuttis.com/libbook,其中提供書中源碼下載。

作者簡介

  譯者:侯捷臺灣資深技術(shù)作家、譯者。閑靜少言。不慕榮利。好讀書。求甚解。侯捷先生以為“任何書籍如果缺少讀者,再怎么優(yōu)秀都將喪失價(jià)值。因此,做為一位書評人,我非常樂見評選風(fēng)氣興盛。雖然所謂“喜愛”帶有很大的主觀成份,但這類評選仍然具有十分正面的價(jià)值,可以帶給讀者、作者、譯者、出版者很大的參與感,對于讀書風(fēng)氣、好書浮現(xiàn)率都有幫助?!鄙钊霚\出MFC(第二版)>>更多作品

圖書目錄

The C++ Standard Library
侯捷譯序a
孟巖譯序g
目錄(Contents) v
前言(Preface) xvii
致謝(Acknowledgments) xix
1 關(guān)于本書1
1.1 緣起1
1.2 閱讀前的必要基礎(chǔ)2
1.3 本書風(fēng)格與結(jié)構(gòu)2
1.4 如何閱讀本書4
1.5 目前發(fā)展形式5
1.6 范例程序代碼及額外信息5
1.7 回應(yīng)5
2 C++ 及其標(biāo)準(zhǔn)程序庫簡介7
2.1 沿革7
2.2 新的語言特性9
2.2.1 Templates(模板) 9
2.2.2 基本型別的顯式初始化(Explicit Initialization) 14
2.2.3 異常處理(Exception Handling) 15
2.2.4 命名空間(Namespaces) 16
2.2.5 bool型別18
2.2.6 關(guān)鍵詞explicit 18
2.2.7 新的型別轉(zhuǎn)換操作符(Type Conversion Operators) 19
2.2.8 常數(shù)靜態(tài)成員(Constant Static Members)的初始化20
2.2.9 main() 的定義21
2.3 復(fù)雜度和Big-O 表示法21
3 一般概念(General Concepts) 23
3.1 命名空間(namespace)std 23
3.2 頭文件(Header Files) 24
3.3 錯(cuò)誤(Error)處理和異常(Exception)處理25
3.3.1 標(biāo)準(zhǔn)異常類別(Standard Exception Classes) 25
3.3.2 異常類別(Exception Classes)的成員28
3.3.3 拋出標(biāo)準(zhǔn)異常29
3.3.4 從標(biāo)準(zhǔn)異常類別(Exception Classes)中派生新的類別30
3.4 配置器(Allocators) 31
4 通用工具(Utilities) 33
4.1 Pairs(對組) 33
4.1.1 便捷函數(shù)make_pair() 36
4.1.2 Pair運(yùn)用實(shí)例37
4.2 Class auto_ptr 38
4.2.1 auto_ptr的發(fā)展動機(jī)38
4.2.2 auto_ptr擁有權(quán)(Ownership)的轉(zhuǎn)移40
4.2.3 auto_ptrs 做為成員之一44
4.2.4 auto_ptrs 的錯(cuò)誤運(yùn)用46
4.2.5 auto_ptr運(yùn)用實(shí)例47
4.2.6 auto_ptr實(shí)作細(xì)目51
4.3 數(shù)值極限(Numeric Limits) 59
4.4 輔助函數(shù)66
4.4.1 挑選較小值和較大值66
4.4.2 兩值互換67
4.5 輔助性的“比較操作符”(Comparison Operators) 69
4.6 頭文件<cstddef> 和<cstdlib> 71
4.6.1 <cstddef> 內(nèi)的各種定義71
4.6.2 <cstdlib> 內(nèi)的各種定義71
5 Standard Template Library(標(biāo)準(zhǔn)模板庫) 73
5.1 STL 組件(STL Components) 73
5.2 容器(Containers) 75
5.2.1 序列式容器(Sequence Containers) 76
5.2.2 關(guān)聯(lián)式容器(Associative Containers) 81
5.2.3 容器配接器(Container Adapters) 82
5.3 迭代器(Iterators) 83
5.3.1 關(guān)聯(lián)式容器的運(yùn)用實(shí)例86
5.3.2 迭代器類型(Iterator Categories) 93
5.4 算法(Algorithms) 94
5.4.1 區(qū)間(Ranges) 97
5.4.2 處理多個(gè)區(qū)間101
5.5 迭代器之配接器(Iterator Adapters) 104
5.5.1 Insert Iterators(安插型迭代器) 104
5.5.2 Stream Iterators(串流迭代器) 107
5.5.3 Reverse Iterators(逆向迭代器) 109
5.6 更易型算法(Manipulating Algorithms) 111
5.6.1 移除(Removing)元素111
5.6.2 更易型算法和關(guān)聯(lián)式容器115
5.6.3 算法v.s. 成員函數(shù)116
5.7 使用者自定之泛型函數(shù)(User-Defined Generic Functions) 117
5.8 以函數(shù)做為算法的參數(shù)119
5.8.1“以函數(shù)做為算法的參數(shù)”實(shí)例示范119
5.8.2 判斷式(Predicates) 121
5.9 仿函數(shù)(Functors or Function Objects) 124
5.9.1 什么是仿函數(shù)124
5.9.2 預(yù)先定義的仿函數(shù)131
5.10 容器內(nèi)的元素(Container Elements) 134
5.10.1 容器元素的條件134
5.10.2 Value 語意vs. Reference 語意135
5.11 STL內(nèi)部的錯(cuò)誤處理和異常處理136
5.11.1 錯(cuò)誤處理(Error Handling) 137
5.11.2 異常處理(Exception Handling) 139
5.12 擴(kuò)展STL 141
6 STL 容器(Containers) 143
6.1 容器的共通能力和共通操作144
6.1.1 容器的共通能力144
6.1.2 容器的共通操作144
6.2 Vectors 148
6.2.1 Vectors 的能力148
6.2.2 Vector 的操作函數(shù)150
6.2.3 將Vectors 當(dāng)做一般Arrays 使用155
6.2.4 異常處理155
6.2.5 Vectors 運(yùn)用實(shí)例156
6.2.6 Class vector<bool> 158
6.3 Deques 160
6.3.1 Deques 的能力161
6.3.2 Deque 的操作函數(shù)162
6.3.3 異常處理(Exception Handling) 164
6.3.4 Deques 運(yùn)用實(shí)例164
6.4 Lists 166
6.4.1 Lists 的能力166
6.4.2 List 的操作函數(shù)167
6.4.3 異常處理(Exception Handling) 172
6.4.4 Lists 運(yùn)用實(shí)例172
6.5 Sets和Multisets 175
6.5.1 Sets 和Multisets 的能力176
6.5.2 Set 和Multiset 的操作177
6.5.3 異常處理(Exception Handling) 185
6.5.4 Sets 和Multisets 運(yùn)用實(shí)例186
6.5.5 執(zhí)行期指定排序準(zhǔn)則(Sorting Criterion) 191
6.6 Maps 和Multimaps 194
6.6.1 Maps 和Multimaps 的能力195
6.6.2 Map 和Multimap 的操作函數(shù)196
6.6.3 將Maps 視為關(guān)聯(lián)式數(shù)組(Associated Arrays) 205
6.6.4 異常處理(Exception Handling) 207
6.6.5 Maps 和Multimaps 運(yùn)用實(shí)例207
6.6.6 綜合實(shí)例:運(yùn)用Maps, Strings 并于執(zhí)行期指定排序準(zhǔn)則213
6.7 其它的STL容器217
6.7.1 Strings 可被視為一種STL容器217
6.7.2 Arrays 可被視為一種STL容器218
6.7.3 Hash Tables 221
6.8 動手實(shí)現(xiàn)Reference 語意222
6.9 各種容器的運(yùn)用時(shí)機(jī)226
6.10 細(xì)說容器內(nèi)的型別和成員230
6.10.1 容器內(nèi)的型別230
6.10.2 生成(Create)、復(fù)制(Copy)、銷毀(Destroy) 231
6.10.3“非變動性操作(Nonmodifying Operations) 233
6.10.4 賦值(指派, Assignments) 236
6.10.5 直接元素存取237
6.10.6 “會產(chǎn)出迭代器”的各項(xiàng)操作239
6.10.7 元素的安插(Inserting)和移除(Removing) 240
6.10.8 Lists 的特殊成員函數(shù)244
6.10.9 對配置器(Allocator)的支持246
6.10.10 綜觀STL容器的異常處理248
7 STL 迭代器(Iterators) 251
7.1 迭代器頭文件251
7.2 迭代器類型(Iterator Categories) 251
7.2.1 Input(輸入)迭代器252
7.2.2 Output(輸出)迭代器253
7.2.3 Forward(前向)迭代器254
7.2.4 Bidirectional(雙向)迭代器255
7.2.5 Random Access(隨機(jī)存?。┑?55
7.2.6 Vector 迭代器的遞增(Increment)和遞減(Decrement) 258
7.3 迭代器相關(guān)輔助函數(shù)259
7.3.1 advance() 可令迭代器前進(jìn)259
7.3.2 distance() 可處理迭代器之間的距離261
7.3.3 iter_swap() 可交換兩個(gè)迭代器所指內(nèi)容263
7.4 迭代器配接器(Iterator Adapters) 264
7.4.1 Reverse(逆向)迭代器264
7.4.2 Insert(安插型)迭代器271
7.4.3 Stream(串流)迭代器277
7.5 迭代器特性(Iterator Traits) 283
7.5.1 為迭代器編寫泛型函數(shù)(Generic Functions) 285
7.5.2 使用者自定(User-Defined)的迭代器288
8 STL 仿函數(shù)(Functors or Function Objects) 293
8.1 仿函數(shù)的概念293
8.1.1 仿函數(shù)可當(dāng)做排序準(zhǔn)則(Sort Criteria) 294
8.1.2 仿函數(shù)可擁有自己的內(nèi)部狀態(tài)(Internal State) 296
8.1.3 for_each() 的回返值300
8.1.4 判斷式(Predicates)和仿函數(shù)(Functors) 302
8.2 預(yù)定義的仿函數(shù)305
8.2.1 函數(shù)配接器(Function Adapters) 306
8.2.2 針對成員函數(shù)而設(shè)計(jì)的函數(shù)配接器307
8.2.3 針對一般函數(shù)(非成員函數(shù))而設(shè)計(jì)的函數(shù)配接器309
8.2.4 讓自定仿函數(shù)也可以使用函數(shù)配接器310
8.3 輔助用(組合型)仿函數(shù)313
8.3.1 一元組合函數(shù)配接器(Unary Compose Function Object Adapters) 314
8.3.2 二元組合函數(shù)配接器(Binary Compose Function Object Adapters) 318
9 STL 算法(Algorithms) 321
9.1 算法頭文件(header files) 321
9.2 算法概觀322
9.2.1 簡介322
9.2.2 算法分門別類323
9.3 輔助函數(shù)332
9.4 for_each() 算法334
9.5 非變動性算法(Nonmodifying Algorithms) 338
9.5.1 計(jì)算元素個(gè)數(shù)338
9.5.2 求最大值和最小值339
9.5.3 搜尋元素341
9.5.4 區(qū)間的比較356
9.6 變動性算法(Modifying Algorithms) 363
9.6.1 復(fù)制(Copying)元素363
9.6.2 轉(zhuǎn)換(Transforming)和結(jié)合(Combining)元素366
9.6.3 互換(Swapping)元素內(nèi)容370
9.6.4 賦予(Assigning)新值372
9.6.5 替換(Replacing)元素375
9.7 移除性算法(Removing Algorithms) 378
9.7.1 移除某些特定元素378
9.7.2 移除重復(fù)元素381
9.8 變序性算法(Mutating Algorithms) 386
9.8.1 逆轉(zhuǎn)(Reversing)元素次序386
9.8.2 旋轉(zhuǎn)(Rotating)元素次序388
9.8.3 排列(Permuting)元素391
9.8.4 重排元素(Shuffling, 攪亂次序) 393
9.8.5 將元素向前搬移395
9.9 排序算法(Sorting Algorithms) 397
9.9.1 對所有元素排序397
9.9.2 局部排序(Partial Sorting) 400
9.9.3 根據(jù)第n 個(gè)元素排序404
9.9.4 Heap 算法406
9.10 已序區(qū)間算法(Sorted Range Algorithms) 409
9.10.1 搜尋元素(Searching) 410
9.10.2 合并元素(Merging) 416
9.11 數(shù)值算法(Numeric Algorithms) 425
9.11.1 加工運(yùn)算后產(chǎn)生結(jié)果425
9.11.2 相對值和絕對值之間的轉(zhuǎn)換429
10 特殊容器(Special Containers) 435
10.1 Stacks(堆棧) 435
10.1.1 核心界面436
10.1.2 Stacks 運(yùn)用實(shí)例437
10.1.3 Class stack<> 細(xì)部討論438
10.1.4 一個(gè)使用者自定的Stack Class 441
10.2 Queues(隊(duì)列) 444
10.2.1 核心界面445
10.2.2 Queues 運(yùn)用實(shí)例446
10.2.3 Class queue<> 細(xì)部討論447
10.2.4 一個(gè)使用者自定的Queue Class 450
10.3 Priority Queues(優(yōu)先隊(duì)列) 453
10.3.1 核心界面455
10.3.2 Priority Queues 運(yùn)用實(shí)例455
10.3.3 Class priority_queue<> 細(xì)部討論456
10.4 Bitsets 460
10.4.1 Bitsets 運(yùn)用實(shí)例460
10.4.2 Class bitset 細(xì)部討論463
11 Strings(字符串) 471
11.1 動機(jī)471
11.1.1 例一:引出一個(gè)臨時(shí)文件名 472
11.1.2 例二:引出一段文字并逆向打印476
11.2 String Classes 細(xì)部描述479
11.2.1 String 的各種相關(guān)型別479
11.2.2 操作函數(shù)(Operations)綜覽481
11.2.3 建構(gòu)式和解構(gòu)式(Constructors and Destructors) 483
11.2.4 Strings 和C-Strings 484
11.2.5 大小(Size)和容量(Capacity) 485
11.2.6 元素存?。‥lement Access) 487
11.2.7 比較(Comparisons) 488
11.2.8 更改內(nèi)容(Modifiers) 489
11.2.9 子字符串及字符串接合 492
11.2.10 I/O 操作符492
11.2.11 搜尋和查找(Searching and Finding) 493
11.2.12 數(shù)值npos 的意義495
11.2.13 Strings 對迭代器的支援497
11.2.14 國際化(Internationalization) 503
11.2.15 效率(Performance) 506
11.2.16 Strings 和Vectors 506
11.3 細(xì)說String Class 507
11.3.1 內(nèi)部的型別定義和靜態(tài)值507
11.3.2 生成(Create)、拷貝(Copy)、銷毀(Destroy) 508
11.3.3 大?。⊿ize)和容量(Capacity) 510
11.3.4 比較(Comparisons) 511
11.3.5 字符存取(Character Access) 512
11.3.6 產(chǎn)生C-Strings 和字符數(shù)組(Character Arrays) 513
11.3.7 更改內(nèi)容514
11.3.8 搜尋(Searching and Finding) 520
11.3.9 子字符串及字符串接合 524
11.3.10 I/O 函數(shù)524
11.3.11 產(chǎn)生迭代器525
11.3.12 對配置器(allocator)的支持526
12 數(shù)值(Numerics) 529
12.1 復(fù)數(shù)(Complex Numbers) 529
12.1.1 Class Complex運(yùn)用實(shí)例530
12.1.2 復(fù)數(shù)的各種操作533
12.1.3 Class complex<> 細(xì)部討論541
12.2 Valarrays 547
12.2.1 認(rèn)識Valarrays 547
12.2.2 Valarray 的子集(Subsets) 553
12.2.3 Class valarray 細(xì)部討論569
12.2.4 Valarray子集類別(Subset Classes)細(xì)部討論575
12.3 全域性的數(shù)值函數(shù)581
13 以Stream Classes完成輸入和輸出583
13.1 I/O Streams 基本概念584
13.1.1 Stream物件584
13.1.2 Stream類別584
13.1.3 全域性的Stream物件585
13.1.4 Stream操作符586
13.1.5 操控器(Manipulators) 586
13.1.6 一個(gè)簡單的例子587
13.2 基本的Stream類別和Stream對象588
13.2.1 相關(guān)類別及其階層體系588
13.2.2 全域性的Stream物件591
13.2.3 頭文件(Headers) 592
13.3 標(biāo)準(zhǔn)的Stream操作符<< 和>> 593
13.3.1 output操作符<< 593
13.3.2 input操作符>> 594
13.3.3 特殊型別的I/O 595
13.4 Streams 的狀態(tài)(state) 597
13.4.1 用來表示Streams 狀態(tài)的一些常數(shù)597
13.4.2 用來處理Streams 狀態(tài)的一些成員函數(shù)598
13.4.3 Stream狀態(tài)與布爾條件測試600
13.4.4 Stream的狀態(tài)和異常602
13.5 標(biāo)準(zhǔn)I/O 函數(shù)607
13.5.1 輸入用的成員函數(shù)607
13.5.2 輸出用的成員函數(shù)610
13.5.3 運(yùn)用實(shí)例611
13.6 操控器(Manipulators) 612
13.6.1 操控器如何運(yùn)作612
13.6.2 使用者自定操控器614
13.7 格式化(Formatting) 615
13.7.1 格式標(biāo)志(Format Flags) 615
13.7.2 布爾值(Boolean Values)的I/O 格式617
13.7.3 字段寬度、填充字符、位置調(diào)整618
13.7.4 正記號與大寫字620
13.7.5 數(shù)值進(jìn)制(Numeric Base) 621
13.7.6 浮點(diǎn)數(shù)(Floating-Point)表示法623
13.7.7 一般性的格式定義625
13.8 國際化(Internationalization) 625
13.9 文件存取(File Access) 627
13.9.1 文件標(biāo)志(File Flags) 631
13.9.2 隨機(jī)存取634
13.9.3 使用文件描述器(File Descriptors) 637
13.10 連接Input Streams 和Output Streams 637
13.10.1 以tie()完成“松耦合”(Loose Coupling) 637
13.10.2 以Stream緩沖區(qū)完成“緊耦合”(Tight Coupling) 638
13.10.3 將標(biāo)準(zhǔn)Streams 重新導(dǎo)向(Redirecting) 641
13.10.4 用于讀寫的Streams 643
13.11 String Stream Classes 645
13.11.1 String Stream Classes 645
13.11.2 char* Stream Classes 649
13.12 “使用者自定型別”之I/O操作符652
13.12.1 實(shí)作一個(gè)output 操作符652
13.12.2 實(shí)作一個(gè)input 操作符654
13.12.3 以輔助函數(shù)完成I/O 656
13.12.4 以非格式化函數(shù)完成使用者自定的操作符658
13.12.5 使用者自定的格式標(biāo)志(Format Flags) 659
13.12.6 使用者自定之I/O 操作符的數(shù)個(gè)依循慣例662
13.13 Stream Buffer Classes 663
13.13.1 從使用者的角度看Stream緩沖區(qū)663
13.13.2 Stream緩沖區(qū)迭代器(Buffer Iterators) 665
13.13.3 使用者自定的Stream 緩沖區(qū)668
13.14 關(guān)于效能(Performance) 681
13.14.1 與C 標(biāo)準(zhǔn)輸入輸出流(Standard Streams)同步682
13.14.2 Stream緩沖區(qū)內(nèi)的緩沖機(jī)制682
13.14.3 直接使用Stream緩沖區(qū)683
14 國際化(Internationalization, i18n) 685
14.1 不同的字符編碼(Character Encoding) 686
14.1.1 寬字符(Wide-Character)和多字節(jié)文本(Multibyte Text) 686
14.1.2 字符特性(Character Traits) 687
14.1.3 特殊字符國際化691
14.2 Locales 的概念692
14.2.1 運(yùn)用Locales 693
14.2.2 Locale Facets 698
14.3 Locales 細(xì)部討論700
14.4 Facets 細(xì)部討論704
14.4.1 數(shù)值格式化705
14.4.2 時(shí)間和日期格式化708
14.4.3 貨幣符號格式化711
14.4.4 字符的分類和轉(zhuǎn)換715
14.4.5 字符串??保⊿tring Collation) 724
14.4.6 信息國際化725
15 空間配置器(Allocators) 727
15.1 應(yīng)用程序開發(fā)者如何使用配置器727
15.2 程序庫開發(fā)者如何使用配置器728
15.3 C++ 標(biāo)準(zhǔn)程序庫的預(yù)設(shè)配置器732
15.4 使用者自行定義的配置器735
15.5 配置器細(xì)部討論737
15.5.1 內(nèi)部定義的型別737
15.5.2 各項(xiàng)操作739
15.6“未初始化內(nèi)存”之處理工具細(xì)部討論740
網(wǎng)絡(luò)上的資源(Internet Resources) 743
參考書目(Bibliography) 745
索引(Index) 747

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號