出版時(shí)間:2010-10 出版社:清華大學(xué)出版社 作者:金百東,劉德山 編著 頁數(shù):368
Tag標(biāo)簽:無
前言
應(yīng)用是推動(dòng)學(xué)科技術(shù)發(fā)展的原動(dòng)力,計(jì)算機(jī)科學(xué)是實(shí)用科學(xué),計(jì)算機(jī)科學(xué)技術(shù)廣泛而深入地應(yīng)用推動(dòng)了計(jì)算機(jī)學(xué)科的飛速發(fā)展。應(yīng)用型創(chuàng)新人才是科技人才的一種類型,應(yīng)用型創(chuàng)新人才的重要特征是具有強(qiáng)大的系統(tǒng)開發(fā)能力和解決實(shí)際問題的能力。培養(yǎng)應(yīng)用型人才的教學(xué)理念是教學(xué)過程中以培養(yǎng)學(xué)生的綜合技術(shù)應(yīng)用能力為主線,理論教學(xué)以夠用為度,所選擇的教學(xué)方法與手段要有利于培養(yǎng)學(xué)生的系統(tǒng)開發(fā)能力和解決實(shí)際問題的能力?! ‰S著我國經(jīng)濟(jì)建設(shè)的發(fā)展,對(duì)計(jì)算機(jī)軟件、計(jì)算機(jī)網(wǎng)絡(luò)、信息系統(tǒng)、信息服務(wù)和計(jì)算機(jī)應(yīng)用技術(shù)等專業(yè)技術(shù)方向的人才的需求日益增加,主要包括軟件設(shè)計(jì)師、軟件評(píng)測(cè)師、網(wǎng)絡(luò)工程師、信息系統(tǒng)監(jiān)理師、信息系統(tǒng)管理工程師、數(shù)據(jù)庫系統(tǒng)工程師、多媒體應(yīng)用設(shè)計(jì)師、電子商務(wù)設(shè)計(jì)師、嵌入式系統(tǒng)設(shè)計(jì)師和計(jì)算機(jī)輔助設(shè)計(jì)師等。如何構(gòu)建應(yīng)用型人才培養(yǎng)的教學(xué)體系以及系統(tǒng)框架,是從事計(jì)算機(jī)教育工作者的責(zé)任。為此,中國計(jì)算機(jī)學(xué)會(huì)計(jì)算機(jī)教育專業(yè)委員會(huì)和清華大學(xué)出版社共同組織啟動(dòng)了《中國高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)(應(yīng)用型)學(xué)科教程》的項(xiàng)目研究。參加本項(xiàng)目的研究人員全部來自國內(nèi)高校教學(xué)一線具有豐富實(shí)踐經(jīng)驗(yàn)的專家和骨干教師。項(xiàng)目組對(duì)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)應(yīng)用型學(xué)科的培養(yǎng)目標(biāo)、內(nèi)容、方法和意義,以及教學(xué)大綱和課程體系等進(jìn)行了較深入、系統(tǒng)的研究,并編寫了《中國高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)(應(yīng)用型)學(xué)科教程》(簡(jiǎn)稱《學(xué)科教程》)?!秾W(xué)科教程》在編寫上注意區(qū)分應(yīng)用性人才與其他人才在培養(yǎng)上的不同,注重體現(xiàn)應(yīng)用型學(xué)科的特征。在課程設(shè)計(jì)中,《學(xué)科教程》在依托學(xué)科設(shè)計(jì)的同時(shí),更注意面向行業(yè)產(chǎn)業(yè)的實(shí)際需求。為了更好地體現(xiàn)《學(xué)科教程》的思想與內(nèi)容,我們組織編寫了《中國高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)(應(yīng)用型)規(guī)劃教材》,旨在能為計(jì)算機(jī)專業(yè)應(yīng)用型教學(xué)的課程設(shè)置、課程內(nèi)容以及教學(xué)實(shí)踐起到一個(gè)示范作用。本系列教材的主要特點(diǎn)如下: 1.完全按照《學(xué)科教程》的體系組織編寫本系列教材,特別是注意在教材設(shè)置、教材定位和教材內(nèi)容的銜接上與《學(xué)科教程》保持一致?! ?.每門課程的教材內(nèi)容都按照《學(xué)科教程》中設(shè)置的大綱精心編寫,盡量體現(xiàn)應(yīng)用型教材的特點(diǎn)。 3.由各學(xué)校精品課程建設(shè)的骨干教師組成作者隊(duì)伍,以課程研究為基礎(chǔ),將教學(xué)的研究成果引入教材中。 4.在教材建設(shè)上,重點(diǎn)突出對(duì)計(jì)算機(jī)應(yīng)用能力和應(yīng)用技術(shù)的培養(yǎng),注重教材的實(shí)踐性?! ?.注重系列教材的立體配套,包括教參、教輔以及配套的教學(xué)資源、電子課件等。
內(nèi)容概要
本書全面系統(tǒng)地介紹標(biāo)準(zhǔn)模板庫(STL)泛型應(yīng)用開發(fā)技術(shù)?;A(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)意義。
書籍目錄
第1章 STL概述 1.1 STL歷史 1 1.2 STL內(nèi)容 2 1.3 建立STL程序的方法 3 1.4 命名空間 5第2章 模板 2.1 通過模板初識(shí)STL思維 7 2.2 traits技術(shù) 10 2.3 模板與操作符重載 14第3章 迭代器 3.1 什么是迭代器 19 3.2 迭代器類位置 24 3.3 進(jìn)一步理解迭代器 27 3.4 STL迭代器 28第4章 輸入輸出流 4.1 標(biāo)準(zhǔn)輸入輸出流 33 4.1.1 插入符與提取符 33 4.1.2 get系列函數(shù) 35 4.1.3 處理流錯(cuò)誤 36 4.2 文件輸入輸出流 38 4.2.1 文件打 38 4.2.2 文件關(guān)閉 38 4.2.3 文件讀寫 38 4.3 字符串輸入輸出流 43 4.4 綜合示例 44第5章 字符串 5.1 字符串創(chuàng)建及初始化 49 5.1.1 基本創(chuàng)建方式 49 5.1.2 迭代器創(chuàng)建方式 50 5.2 字符串操作 50 5.2.1 插入操作 50 5.2.2 替換操作 51 5.3 字符串查詢 52 5.4 字符串中刪除字符 54 5.5 字符串比較 54 5.6 綜合示例 55第6章 函數(shù)對(duì)象 6.1 簡(jiǎn)介 61 6.1.1 為何引入函數(shù)對(duì)象 61 6.1.2 函數(shù)對(duì)象分類 62 6.1.3 簡(jiǎn)單示例 63 6.2 一元函數(shù) 64 6.3 二元函數(shù) 66 6.4 系統(tǒng)函數(shù)對(duì)象 68 6.4.1 算術(shù)類函數(shù)對(duì)象 69 6.4.2 關(guān)系運(yùn)算類函數(shù)對(duì)象 72 6.4.3 邏輯運(yùn)算類函數(shù)對(duì)象 74 6.4.4 函數(shù)適配器 74 6.5 綜合示例 79第7章 通用容器 7.1 概述 83 7.1.1 容器分類 83 7.1.2 容器共性 84 7.1.3 容器比較 85 7.2 vector容器 85 7.2.1 概述 85 7.2.2 初始化示例 86 7.2.3 增加及獲得元素示例 88 7.2.4 修改元素示例 92 7.2.5 刪除元素示例 93 7.2.6 進(jìn)一步理解vector 94 7.2.7 綜合操作示例 95 7.3 deque容器 99 7.3.1 常用函數(shù) 99 7.3.2 基本操作示例 100 7.3.3 綜合操作示例 102 7.4 list容器 104 7.4.1 常用函數(shù) 105 7.4.2 基本操作示例 106 7.4.3 綜合操作示例 109 7.5 隊(duì)列和堆棧 115 7.5.1 常用函數(shù) 115 7.5.2 容器配接器 116 7.5.3 基本操作示例 117 7.5.4 綜合操作示例 120 7.6 優(yōu)先隊(duì)列 123 7.6.1 常用函數(shù) 123 7.6.2 基本操作示例 124 7.6.3 綜合操作示例 125 7.7 bitset容器 128 7.7.1 常用函數(shù) 128 7.7.2 基本操作示例 129 7.7.3 綜合操作示例 132 7.8 集合 135 7.8.1 常用函數(shù) 135 7.8.2 基本操作示例 136 7.8.3 綜合操作示例 139 7.9 映射 142 7.9.1 常用函數(shù) 142 7.9.2 基本操作示例 143 7.9.3 綜合操作示例 145 7.10 再論迭代器 150第8章 非變異算法 8.1 循環(huán) 155 8.1.1 主要函數(shù) 155 8.1.2 示例分析 156 8.2 查詢 160 8.2.1 主要函數(shù) 160 8.2.2 示例分析 163 8.3 計(jì)數(shù) 171 8.3.1 主要函數(shù) 171 8.3.2 示例分析 172 8.4 比較 174 8.4.1 主要函數(shù) 174 8.4.2 示例分析 175第9章 變異算法 9.1 復(fù)制 180 9.1.1 主要函數(shù) 180 9.1.2 示例分析 181 9.2 交換 182 9.2.1 主要函數(shù) 182 9.2.2 示例分析 183 9.3 變換 184 9.3.1 主要函數(shù) 184 9.3.2 示例分析 185 9.4 替換 188 9.4.1 主要函數(shù) 188 9.4.2 示例分析 190 9.5 填充 191 9.5.1 主要函數(shù) 191 9.5.2 示例分析 192 9.6 生成 193 9.6.1 主要函數(shù) 193 9.6.2 示例分析 194 9.7 刪除 199 9.7.1 主要函數(shù) 199 9.7.2 示例分析 200 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 8.11.1 主要函數(shù) 212 9.11.2 示例分析 212 9.12 劃分 215 9.12.1 主要函數(shù) 215 9.12.2 示例分析 216第10章 排序及相關(guān)操作 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 示例分析 227 10.3 二分檢索 228 10.3.1 主要函數(shù) 228 10.3.2 示例分析 230 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 示例分析 236 10.6 堆操作 241 10.6.1 主要函數(shù) 241 10.6.2 示例分析 242 10.7 最大和最小 245 10.7.1 主要函數(shù) 245 10.7.2 示例分析 247 10.8 詞典比較 247 10.8.1 主要函數(shù) 247 10.8.2 示例分析 248 10.9 排列生成器 249 10.9.1 主要函數(shù) 249 10.9.2 示例分析 250 10.10 數(shù)值算法 251 10.10.1 主要函數(shù) 251 10.10.2 示例分析 253 10.11 自定義STL風(fēng)格函數(shù) 254第11章 STL應(yīng)用 11.1 算法的綜合運(yùn)用 257 11.1.1 在多態(tài)中的應(yīng)用 257 11.1.2 set、map應(yīng)用 261 11.1.3 ini文件解析 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.1 Scribble繪圖程序 317 11.3.2 數(shù)據(jù)庫操作程序 324 11.3.3 文本文件排序、查詢 337 11.3.4 基于配置文件的查詢程序 346 11.3.5 STL 動(dòng)態(tài)鏈接庫 360參考文獻(xiàn)
章節(jié)摘錄
?。?)序列性容器:按照線性排列來存儲(chǔ)某類型值的集合,每個(gè)元素都有自己特定的位置,順序容器主要有vector、deque和list?! ector:就是動(dòng)態(tài)數(shù)組。它是在堆中分配內(nèi)存,元素連續(xù)存放,有保留內(nèi)存,如果減少大小后內(nèi)存也不會(huì)釋放。新值大于當(dāng)前大小時(shí)才會(huì)再分配內(nèi)存。對(duì)最后元素操作最快(在后面添加刪除最快),此時(shí)一般不需要移動(dòng)內(nèi)存。只有保留內(nèi)存不夠時(shí),才需要對(duì)中間和開始處進(jìn)行添加刪除元素操作,這時(shí)需要移動(dòng)內(nèi)存,如果你的元素是結(jié)構(gòu)或是類,那么移動(dòng)的同時(shí)還會(huì)進(jìn)行構(gòu)造和析構(gòu)操作。vector的一大特點(diǎn)是可直接訪問任何元素?! eque:與vector類似,支持隨機(jī)訪問和快速插入刪除,它在容器中某一位置上的操作所花費(fèi)的是線性時(shí)間。與vector不同的是,deque還支持從開始端插入、刪除數(shù)據(jù)。由于它主要對(duì)前端、后端進(jìn)行操作,因此也叫做雙端隊(duì)列。 list:又叫鏈表,是一種雙線性列表,只能順序訪問(從前向后或者從后向前),與前面兩種容器類有一個(gè)明顯的區(qū)別就是它不支持隨機(jī)訪問。要訪問表中某個(gè)下標(biāo)處的項(xiàng)需要從表頭或表尾處(接近該下標(biāo)的一端)開始循環(huán)。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
C++STL基礎(chǔ)及應(yīng)用 PDF格式下載