C++ STL基礎及套用(第2版)

本書全面而又系統地介紹標準模板庫(STL)泛型套用開發技術,基礎知識部分包括模板、疊代器、輸入輸出流、字元串、函式對象、通用容器、非變異算法、變異算法、排序等,集成套用部分包括STL算法的綜合套用、在數據結構中的套用、在Visual C++上的套用等。本書從套用出發,每章都包含大量示例和詳細的結果分析,旨在使讀者學會STL各個知識體系的套用方法,體會STL思維的巧妙之處。對某些稍難示例的設計思想也做了詳細說明。

內容簡介,編輯推薦,目錄,

內容簡介

本書可作為專業技術人員、大專院校計算機專業的本科生、研究生學習C++泛型編程的教材或參考書,對編寫Java泛型程式也有一定的指導意義。

編輯推薦

全書共分11章,第1~10章側重於基礎知識部分,第11章側重於綜合套用部分。
第1章介紹STL的歷史和主要內容以及本書用到的開發環境。
第2章通過示例說明STL中的記憶體管理思想、重要的traits模板技術、模板與操作符重載的關係。
第3章介紹STL中引入疊代器的原因,並通過自定義疊代器示例加深理解疊代器的內涵。
第4章介紹標準輸入輸出流、檔案輸入輸出流、字元串輸入輸出流。
第5章介紹字元串創建方式及增、刪、改、查等常用功能套用方法。
第6章介紹引入函式對象的原因,系統函式對象有哪些,自定義函式對象套用方法。C++STL基礎及套用(第2版)第7章介紹vector、deque、list、queue、stack、priority_queue、bitset、set和map等通用容器的用法,並強調了容器適配器的作用。
第8~10章主要是講算法。第8章介紹非變異算法,包括循環、查詢、計數、比較等功能;第9章介紹變異算法,包含複製、交換、變換、替換、填充、生成、刪除、唯一、反轉、環移、隨機、劃分等功能;第10章介紹排序及相關操作的算法。
第11章側重於集成套用,包括算法綜合套用、在數據結構中套用、在VisualC++中套用三部分。算法綜合套用主要介紹在多態、檔案解析、綜合查詢中的STL套用方法;在數據結構中套用介紹全排列、頻度、最長公共子序列、大整型數加法、乘法、矩陣、回溯、字元串表達式、圖中的STL套用方法。在VisualC++中套用介紹用STL容器存儲繪圖信息,容器+算法實現數據保存與查詢問題,並介紹STL與動態程式庫的接口問題等。

目錄

第1章STL概述1
1.1STL歷史1
1.2STL內容2
1.3命名空間3
第2章模板5
2.1通過模板初識STL思維5
2.2traits技術8
2.3模板與操作符重載12
第3章疊代器17
3.1什麼是疊代器17
3.2疊代器類位置22
3.3進一步理解疊代器25
3.4STL疊代器26
第4章輸入輸出流31
4.1標準輸入輸出流31
4.1.1插入符與提取符31
4.1.2get系列函式33
4.1.3處理流錯誤34
4.2檔案輸入輸出流36
4.2.1檔案打開36
4.2.2檔案關閉36
4.2.3檔案讀寫36
4.3字元串輸入輸出流41
4.4綜合示例42C++ STL基礎及套用(第2版) 目錄 第5章字元串47
5.1字元串創建及初始化47
5.1.1基本創建方式47
5.1.2疊代器創建方式48
5.2字元串操作48
5.2.1插入操作48
5.2.2替換操作49
5.3字元串查詢50
5.4在字元串中刪除字元52
5.5字元串比較52
5.6綜合示例53
第6章函式對象59
6.1簡介59
6.1.1為何引入函式對象59
6.1.2函式對象分類60
6.1.3簡單示例61
6.2一元函式62
6.3二元函式64
6.4系統函式對象66
6.4.1算術類函式對象67
6.4.2關係運算類函式對象70
6.4.3邏輯運算類函式對象72
6.4.4函式適配器72
6.5綜合示例77
第7章通用容器81
7.1概述81
7.1.1容器分類81
7.1.2容器共性82
7.1.3容器比較83
7.2vector容器83
7.2.1概述83
7.2.2初始化示例84
7.2.3增加及獲得元素示例86
7.2.4修改元素示例90
7.2.5刪除元素示例91
7.2.6進一步理解vector92
7.2.7綜合操作示例93
7.3deque容器97
7.3.1常用函式97
7.3.2基本操作示例98
7.3.3綜合操作示例100
7.4list容器102
7.4.1常用函式103
7.4.2基本操作示例104
7.4.3綜合操作示例107
7.5佇列和堆疊113
7.5.1常用函式113
7.5.2容器配接器114
7.5.3基本操作示例115
7.5.4綜合操作示例118
7.6優先佇列121
7.6.1常用函式121
7.6.2基本操作示例122
7.6.3綜合操作示例123
7.7bitset容器126
7.7.1常用函式126
7.7.2基本操作示例127
7.7.3綜合操作示例130
7.8集合133
7.8.1常用函式133
7.8.2基本操作示例134
7.8.3綜合操作示例137
7.9映射140
7.9.1常用函式140
7.9.2基本操作示例141
7.9.3綜合操作示例144
7.10再論疊代器148
第8章非變異算法153
8.1循環153
8.1.1主要函式153
8.1.2示例分析154
8.2查詢158
8.2.1主要函式158
8.2.2示例分析161
8.3計數169
8.3.1主要函式169
8.3.2示例分析170
8.4比較172
8.4.1主要函式172
8.4.2示例分析173
第9章變異算法177
9.1複製178
9.1.1主要函式178
9.1.2示例分析179
9.2交換180
9.2.1主要函式180
9.2.2示例分析181
9.3變換182
9.3.1主要函式182
9.3.2示例分析183
9.4替換186
9.4.1主要函式186
9.4.2示例分析188
9.5填充190
9.5.1主要函式190
9.5.2示例分析191
9.6生成192
9.6.1主要函式192
9.6.2示例分析193
9.7刪除198
9.7.1主要函式198
9.7.2示例分析199
9.8唯一204
9.8.1主要函式204
9.8.2示例分析205
9.9反轉207
9.9.1主要函式207
9.9.2示例分析208
9.10環移209
9.10.1主要函式209
9.10.2示例分析210
9.11隨機212
9.11.1主要函式212
9.11.2示例分析212
9.12劃分215
9.12.1主要函式215
9.12.2示例分析216
第10章排序及相關操作219
10.1排序220
10.1.1主要函式220
10.1.2示例分析222
10.2第n個元素227
10.2.1主要函式227
10.2.2示例分析228
10.3二分檢索229
10.3.1主要函式229
10.3.2示例分析231
10.4歸併232
10.4.1主要函式232
10.4.2示例分析233
10.5有序結構上的集合操作234
10.5.1主要函式234
10.5.2示例分析237
10.6堆操作242
10.6.1主要函式242
10.6.2示例分析244
10.7最大和最小247
10.7.1主要函式247
10.7.2示例分析248
10.8詞典比較249
10.8.1主要函式249
10.8.2示例分析250
10.9排列生成器251
10.9.1主要函式251
10.9.2示例分析252
10.10數值算法253
10.10.1主要函式253
10.10.2示例分析255
第11章STL套用257
11.1算法的綜合運用257
11.1.1在多態中的套用257
11.1.2set、map套用261
11.1.3ini檔案解析264
11.1.4綜合查詢269
11.2在數據結構中的套用280
11.2.1全排列套用280
11.2.2頻度問題283
11.2.3最長公共子序列問題285
11.2.4大整型數加法、乘法類288
11.2.5矩陣問題293
11.2.6回溯問題296
11.2.7字元串表達式300
11.2.8圖306
11.3在VisualC++中套用316
11.3.1Scribble繪圖程式317
11.3.2資料庫操作程式324
11.3.3文本檔案排序、查詢337
11.3.4基於配置檔案的查詢程式346
11.3.5STL與動態程式庫360
參考文獻369

相關詞條

熱門詞條

聯絡我們