定 價:49 元
叢書名:中國高等學校計算機科學與技術(shù)專業(yè) 應用型 規(guī)劃教材
- 作者:劉德山,金百東編著
- 出版時間:2015/6/1
- ISBN:9787302400356
- 出 版 社:清華大學出版社
- 中圖法分類:TP312C
- 頁碼:368
- 紙張:膠版紙
- 版次:2
- 開本:16K
《C++ STL基礎(chǔ)及應用(第2版)/中國高等學校計算機科學與技術(shù)專業(yè) 應用型 規(guī)劃教材》全面而又系統(tǒng)地介紹標準模板庫(STL)泛型應用開發(fā)技術(shù),基礎(chǔ)知識部分包括模板、迭代器、輸入輸出流、字符串、函數(shù)對象、通用容器、非變異算法、變異算法、排序等,集成應用部分包括STL算法的綜合應用、在數(shù)據(jù)結(jié)構(gòu)中的應用、在Visual C++上的應用等。本書從應用出發(fā),每章都包含大量示例和詳細的結(jié)果分析,旨在使讀者學會STL各個知識體系的應用方法,體會STL思維的巧妙之處。對某些稍難示例的設(shè)計思想也做了詳細說明。 本書可作為專業(yè)技術(shù)人員、大專院校計算機專業(yè)的本科生、研究生學習C++泛型編程的教材或參考書,對編寫Java泛型程序也有一定的指導意義
2008年7月STL(Standard Template Library,標準模板庫)是C++泛型標準化內(nèi)容的重要組成部分,主要由容器、迭代器和算法三部分組成,其中封裝了數(shù)據(jù)結(jié)構(gòu)中的絕大部分內(nèi)容。運用STL開發(fā)應用程序可以共享各種容器及算法,避免了低層次的各種容器及常用算法的反復開發(fā),在代碼一致性、升級、維護等方面都有很大的優(yōu)越性。因此,學習STL是進行深層次開發(fā)C++應用程序的重要途徑。但是,目前市場上關(guān)于STL的書籍很多是譯著,在思考方法上可能與我們的學生不一致,學習起來很吃力。所以,本書力求把多年的STL編程經(jīng)驗按照學生的思維方式進行編排,希望學生們能很快學會STL泛型編程方法,體會STL泛型編程的樂趣。
本書第1版于2010年出版,很多讀者在使用過程中給予了積極的肯定,并提出了中肯的建議。根據(jù)近幾年的教學實踐,作者對教材內(nèi)容、開發(fā)環(huán)境做了調(diào)整,使其更適用于不斷變化的C++教學及開發(fā)。主要修訂如下。
(1) 第1章~第10章所有示例程序,第11章部分程序都在DEVCPP編譯環(huán)境下重新調(diào)式,與原來的VC稍有不同。很多讀者認為VC的STL有許多漏洞,DEV更好,支持gcc編譯?芍苯右浦驳絃inux、Unix下,所有代碼修改的部分均已調(diào)試通過。
(2) 刪除了10.11“自定義STL風格函數(shù)”。該部分涉及STL內(nèi)核程序,而VC、DEV下的內(nèi)核是不同的,這里不宜進行分類討論。另外,也刪除了原1.3節(jié)“建立STL程序的方法”。
(3) 作為配套資源,本書提供所有調(diào)試程序的源碼,并提供32位或64位的DEV開發(fā)環(huán)境。
全書共分11章,第1~10章側(cè)重于基礎(chǔ)知識部分,第11章側(cè)重于綜合應用部分。
第1章介紹STL的歷史和主要內(nèi)容以及本書用到的開發(fā)環(huán)境。
第2章通過示例說明STL中的內(nèi)存管理思想、重要的traits模板技術(shù)、模板與操作符重載的關(guān)系。
第3章介紹STL中引入迭代器的原因,并通過自定義迭代器示例加深理解迭代器的內(nèi)涵。
第4章介紹標準輸入輸出流、文件輸入輸出流、字符串輸入輸出流。
第5章介紹字符串創(chuàng)建方式及增、刪、改、查等常用功能應用方法。
第6章介紹引入函數(shù)對象的原因,系統(tǒng)函數(shù)對象有哪些,自定義函數(shù)對象應用方法。C++ STL基礎(chǔ)及應用(第2版) 第7章介紹vector、deque、list、queue、stack、priority_queue、bitset、set和map等通用容器的用法,并強調(diào)了容器適配器的作用。
第8~10章主要是講算法。第8章介紹非變異算法,包括循環(huán)、查詢、計數(shù)、比較等功能;第9章介紹變異算法,包含復制、交換、變換、替換、填充、生成、刪除、唯一、反轉(zhuǎn)、環(huán)移、隨機、劃分等功能;第10章介紹排序及相關(guān)操作的算法。
第11章側(cè)重于集成應用,包括算法綜合應用、在數(shù)據(jù)結(jié)構(gòu)中應用、在Visual C++中應用三部分。算法綜合應用主要介紹在多態(tài)、文件解析、綜合查詢中的STL應用方法;在數(shù)據(jù)結(jié)構(gòu)中應用介紹全排列、頻度、最長公共子序列、大整型數(shù)加法、乘法、矩陣、回溯、字符串表達式、圖中的STL應用方法。在Visual C++中應用介紹用STL容器存儲繪圖信息,容器+算法實現(xiàn)數(shù)據(jù)保存與查詢問題,并介紹STL與動態(tài)鏈接庫的接口問題等。
本書第1~5和第11章由劉德山編寫,第6~10章由金百東編寫。因本書程序較多,全書變量均用正體。
本書內(nèi)容循序漸進,示例豐富,第1~10章的所有示例代碼編譯后就可以運行。第11章某些程序由于較大,做了簡化處理。示例結(jié)果都做了必要的說明,對一些稍難的題目,對其設(shè)計思想也做了相應的論述,幫助讀者加深對STL的理解。
由于作者水平有限,時間緊迫,書中難免有疏漏之處,懇請廣大讀者批評指正,不勝感激。
編者2015年3月
第1章STL概述1
1.1STL歷史1
1.2STL內(nèi)容2
1.3命名空間3
第2章模板5
2.1通過模板初識STL思維5
2.2traits技術(shù)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系列函數(shù)33
4.1.3處理流錯誤34
4.2文件輸入輸出流36
4.2.1文件打開36
4.2.2文件關(guān)閉36
4.2.3文件讀寫36
4.3字符串輸入輸出流41
4.4綜合示例42C++ STL基礎(chǔ)及應用(第2版) 目錄 第5章字符串47
5.1字符串創(chuàng)建及初始化47
5.1.1基本創(chuàng)建方式47
5.1.2迭代器創(chuàng)建方式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章函數(shù)對象59
6.1簡介59
6.1.1為何引入函數(shù)對象59
6.1.2函數(shù)對象分類60
6.1.3簡單示例61
6.2一元函數(shù)62
6.3二元函數(shù)64
6.4系統(tǒng)函數(shù)對象66
6.4.1算術(shù)類函數(shù)對象67
6.4.2關(guān)系運算類函數(shù)對象70
6.4.3邏輯運算類函數(shù)對象72
6.4.4函數(shù)適配器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常用函數(shù)97
7.3.2基本操作示例98
7.3.3綜合操作示例100
7.4list容器102
7.4.1常用函數(shù)103
7.4.2基本操作示例104
7.4.3綜合操作示例107
7.5隊列和堆棧113
7.5.1常用函數(shù)113
7.5.2容器配接器114
7.5.3基本操作示例115
7.5.4綜合操作示例118
7.6優(yōu)先隊列121
7.6.1常用函數(shù)121
7.6.2基本操作示例122
7.6.3綜合操作示例123
7.7bitset容器126
7.7.1常用函數(shù)126
7.7.2基本操作示例127
7.7.3綜合操作示例130
7.8集合133
7.8.1常用函數(shù)133
7.8.2基本操作示例134
7.8.3綜合操作示例137
7.9映射140
7.9.1常用函數(shù)140
7.9.2基本操作示例141
7.9.3綜合操作示例144
7.10再論迭代器148
第8章非變異算法153
8.1循環(huán)153
8.1.1主要函數(shù)153
8.1.2示例分析154
8.2查詢158
8.2.1主要函數(shù)158
8.2.2示例分析161
8.3計數(shù)169
8.3.1主要函數(shù)169
8.3.2示例分析170
8.4比較172
8.4.1主要函數(shù)172
8.4.2示例分析173
第9章變異算法177
9.1復制178
9.1.1主要函數(shù)178
9.1.2示例分析179
9.2交換180
9.2.1主要函數(shù)180
9.2.2示例分析181
9.3變換182
9.3.1主要函數(shù)182
9.3.2示例分析183
9.4替換186
9.4.1主要函數(shù)186
9.4.2示例分析188
9.5填充190
9.5.1主要函數(shù)190
9.5.2示例分析191
9.6生成192
9.6.1主要函數(shù)192
9.6.2示例分析193
9.7刪除198
9.7.1主要函數(shù)198
9.7.2示例分析199
9.8唯一204
9.8.1主要函數(shù)204
9.8.2示例分析205
9.9反轉(zhuǎn)207
9.9.1主要函數(shù)207
9.9.2示例分析208
9.10環(huán)移209
9.10.1主要函數(shù)209
9.10.2示例分析210
9.11隨機212
9.11.1主要函數(shù)212
9.11.2示例分析212
9.12劃分215
9.12.1主要函數(shù)215
9.12.2示例分析216
第10章排序及相關(guān)操作219
10.1排序220
10.1.1主要函數(shù)220
10.1.2示例分析222
10.2第n個元素227
10.2.1主要函數(shù)227
10.2.2示例分析228
10.3二分檢索229
10.3.1主要函數(shù)229
10.3.2示例分析231
10.4歸并232
10.4.1主要函數(shù)232
10.4.2示例分析233
10.5有序結(jié)構(gòu)上的集合操作234
10.5.1主要函數(shù)234
10.5.2示例分析237
10.6堆操作242
10.6.1主要函數(shù)242
10.6.2示例分析244
10.7最大和最小247
10.7.1主要函數(shù)247
10.7.2示例分析248
10.8詞典比較249
10.8.1主要函數(shù)249
10.8.2示例分析250
10.9排列生成器251
10.9.1主要函數(shù)251
10.9.2示例分析252
10.10數(shù)值算法253
10.10.1主要函數(shù)253
10.10.2示例分析255
第11章STL應用257
11.1算法的綜合運用257
11.1.1在多態(tài)中的應用257
11.1.2set、map應用261
11.1.3ini文件解析264
11.1.4綜合查詢269
11.2在數(shù)據(jù)結(jié)構(gòu)中的應用280
11.2.1全排列應用280
11.2.2頻度問題283
11.2.3最長公共子序列問題285
11.2.4大整型數(shù)加法、乘法類288
11.2.5矩陣問題293
11.2.6回溯問題296
11.2.7字符串表達式300
11.2.8圖306
11.3在Visual C++中應用316
11.3.1Scribble繪圖程序317
11.3.2數(shù)據(jù)庫操作程序324
11.3.3文本文件排序、查詢337
11.3.4基于配置文件的查詢程序346
11.3.5STL與動態(tài)鏈接庫360
參考文獻369