定 價(jià):49 元
叢書名:中國高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè) 應(yīng)用型 規(guī)劃教材
- 作者:劉德山,金百東編著
- 出版時(shí)間:2015/6/1
- ISBN:9787302400356
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312C
- 頁碼:368
- 紙張:膠版紙
- 版次:2
- 開本:16K
《C++ STL基礎(chǔ)及應(yīng)用(第2版)/中國高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè) 應(yīng)用型 規(guī)劃教材》全面而又系統(tǒng)地介紹標(biāo)準(zhǔn)模板庫(STL)泛型應(yīng)用開發(fā)技術(shù),基礎(chǔ)知識(shí)部分包括模板、迭代器、輸入輸出流、字符串、函數(shù)對(duì)象、通用容器、非變異算法、變異算法、排序等,集成應(yīng)用部分包括STL算法的綜合應(yīng)用、在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用、在Visual C++上的應(yīng)用等。本書從應(yīng)用出發(fā),每章都包含大量示例和詳細(xì)的結(jié)果分析,旨在使讀者學(xué)會(huì)STL各個(gè)知識(shí)體系的應(yīng)用方法,體會(huì)STL思維的巧妙之處。對(duì)某些稍難示例的設(shè)計(jì)思想也做了詳細(xì)說明。 本書可作為專業(yè)技術(shù)人員、大專院校計(jì)算機(jī)專業(yè)的本科生、研究生學(xué)習(xí)C++泛型編程的教材或參考書,對(duì)編寫Java泛型程序也有一定的指導(dǎo)意義
2008年7月STL(Standard Template Library,標(biāo)準(zhǔn)模板庫)是C++泛型標(biāo)準(zhǔn)化內(nèi)容的重要組成部分,主要由容器、迭代器和算法三部分組成,其中封裝了數(shù)據(jù)結(jié)構(gòu)中的絕大部分內(nèi)容。運(yùn)用STL開發(fā)應(yīng)用程序可以共享各種容器及算法,避免了低層次的各種容器及常用算法的反復(fù)開發(fā),在代碼一致性、升級(jí)、維護(hù)等方面都有很大的優(yōu)越性。因此,學(xué)習(xí)STL是進(jìn)行深層次開發(fā)C++應(yīng)用程序的重要途徑。但是,目前市場上關(guān)于STL的書籍很多是譯著,在思考方法上可能與我們的學(xué)生不一致,學(xué)習(xí)起來很吃力。所以,本書力求把多年的STL編程經(jīng)驗(yàn)按照學(xué)生的思維方式進(jìn)行編排,希望學(xué)生們能很快學(xué)會(huì)STL泛型編程方法,體會(huì)STL泛型編程的樂趣。
本書第1版于2010年出版,很多讀者在使用過程中給予了積極的肯定,并提出了中肯的建議。根據(jù)近幾年的教學(xué)實(shí)踐,作者對(duì)教材內(nèi)容、開發(fā)環(huán)境做了調(diào)整,使其更適用于不斷變化的C++教學(xué)及開發(fā)。主要修訂如下。
(1) 第1章~第10章所有示例程序,第11章部分程序都在DEVCPP編譯環(huán)境下重新調(diào)式,與原來的VC稍有不同。很多讀者認(rèn)為VC的STL有許多漏洞,DEV更好,支持gcc編譯?芍苯右浦驳絃inux、Unix下,所有代碼修改的部分均已調(diào)試通過。
(2) 刪除了10.11“自定義STL風(fēng)格函數(shù)”。該部分涉及STL內(nèi)核程序,而VC、DEV下的內(nèi)核是不同的,這里不宜進(jìn)行分類討論。另外,也刪除了原1.3節(jié)“建立STL程序的方法”。
(3) 作為配套資源,本書提供所有調(diào)試程序的源碼,并提供32位或64位的DEV開發(fā)環(huán)境。
全書共分11章,第1~10章側(cè)重于基礎(chǔ)知識(shí)部分,第11章側(cè)重于綜合應(yīng)用部分。
第1章介紹STL的歷史和主要內(nèi)容以及本書用到的開發(fā)環(huán)境。
第2章通過示例說明STL中的內(nèi)存管理思想、重要的traits模板技術(shù)、模板與操作符重載的關(guān)系。
第3章介紹STL中引入迭代器的原因,并通過自定義迭代器示例加深理解迭代器的內(nèi)涵。
第4章介紹標(biāo)準(zhǔn)輸入輸出流、文件輸入輸出流、字符串輸入輸出流。
第5章介紹字符串創(chuàng)建方式及增、刪、改、查等常用功能應(yīng)用方法。
第6章介紹引入函數(shù)對(duì)象的原因,系統(tǒng)函數(shù)對(duì)象有哪些,自定義函數(shù)對(duì)象應(yīng)用方法。C++ STL基礎(chǔ)及應(yīng)用(第2版) 第7章介紹vector、deque、list、queue、stack、priority_queue、bitset、set和map等通用容器的用法,并強(qiáng)調(diào)了容器適配器的作用。
第8~10章主要是講算法。第8章介紹非變異算法,包括循環(huán)、查詢、計(jì)數(shù)、比較等功能;第9章介紹變異算法,包含復(fù)制、交換、變換、替換、填充、生成、刪除、唯一、反轉(zhuǎn)、環(huán)移、隨機(jī)、劃分等功能;第10章介紹排序及相關(guān)操作的算法。
第11章側(cè)重于集成應(yīng)用,包括算法綜合應(yīng)用、在數(shù)據(jù)結(jié)構(gòu)中應(yīng)用、在Visual C++中應(yīng)用三部分。算法綜合應(yīng)用主要介紹在多態(tài)、文件解析、綜合查詢中的STL應(yīng)用方法;在數(shù)據(jù)結(jié)構(gòu)中應(yīng)用介紹全排列、頻度、最長公共子序列、大整型數(shù)加法、乘法、矩陣、回溯、字符串表達(dá)式、圖中的STL應(yīng)用方法。在Visual C++中應(yīng)用介紹用STL容器存儲(chǔ)繪圖信息,容器+算法實(shí)現(xiàn)數(shù)據(jù)保存與查詢問題,并介紹STL與動(dòng)態(tài)鏈接庫的接口問題等。
本書第1~5和第11章由劉德山編寫,第6~10章由金百東編寫。因本書程序較多,全書變量均用正體。
本書內(nèi)容循序漸進(jìn),示例豐富,第1~10章的所有示例代碼編譯后就可以運(yùn)行。第11章某些程序由于較大,做了簡化處理。示例結(jié)果都做了必要的說明,對(duì)一些稍難的題目,對(duì)其設(shè)計(jì)思想也做了相應(yīng)的論述,幫助讀者加深對(duì)STL的理解。
由于作者水平有限,時(shí)間緊迫,書中難免有疏漏之處,懇請(qǐng)廣大讀者批評(píng)指正,不勝感激。
編者2015年3月
第1章STL概述1
1.1STL歷史1
1.2STL內(nèi)容2
1.3命名空間3
第2章模板5
2.1通過模板初識(shí)STL思維5
2.2traits技術(shù)8
2.3模板與操作符重載12
第3章迭代器17
3.1什么是迭代器17
3.2迭代器類位置22
3.3進(jìn)一步理解迭代器25
3.4STL迭代器26
第4章輸入輸出流31
4.1標(biāo)準(zhǔn)輸入輸出流31
4.1.1插入符與提取符31
4.1.2get系列函數(shù)33
4.1.3處理流錯(cuò)誤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ǔ)及應(yīng)用(第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ù)對(duì)象59
6.1簡介59
6.1.1為何引入函數(shù)對(duì)象59
6.1.2函數(shù)對(duì)象分類60
6.1.3簡單示例61
6.2一元函數(shù)62
6.3二元函數(shù)64
6.4系統(tǒng)函數(shù)對(duì)象66
6.4.1算術(shù)類函數(shù)對(duì)象67
6.4.2關(guān)系運(yùn)算類函數(shù)對(duì)象70
6.4.3邏輯運(yùn)算類函數(shù)對(duì)象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進(jìn)一步理解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隊(duì)列和堆棧113
7.5.1常用函數(shù)113
7.5.2容器配接器114
7.5.3基本操作示例115
7.5.4綜合操作示例118
7.6優(yōu)先隊(duì)列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計(jì)數(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復(fù)制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隨機(jī)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個(gè)元素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應(yīng)用257
11.1算法的綜合運(yùn)用257
11.1.1在多態(tài)中的應(yīng)用257
11.1.2set、map應(yīng)用261
11.1.3ini文件解析264
11.1.4綜合查詢269
11.2在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用280
11.2.1全排列應(yīng)用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字符串表達(dá)式300
11.2.8圖306
11.3在Visual C++中應(yīng)用316
11.3.1Scribble繪圖程序317
11.3.2數(shù)據(jù)庫操作程序324
11.3.3文本文件排序、查詢337
11.3.4基于配置文件的查詢程序346
11.3.5STL與動(dòng)態(tài)鏈接庫360
參考文獻(xiàn)369