2年,C++標(biāo)準(zhǔn)委員會發(fā)布了標(biāo)準(zhǔn)的一個重要修訂版,即C+,揭開了C++發(fā)展的新篇章。目前,許多程序設(shè)計(jì)競賽和相關(guān)考試都已經(jīng)提供了支持C+程序運(yùn)行的編譯器。本書的代碼完全采用C+的語法進(jìn)行編寫,并力求幫助讀者養(yǎng)成一種良好的C+代碼編寫風(fēng)格,在程序設(shè)計(jì)競賽和相關(guān)考試中能夠快速而準(zhǔn)確地編寫代碼。
除了介紹C+新特性之外,本書還會詳細(xì)介紹各類基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)和算法。本書的具體內(nèi)容個部分:C+基礎(chǔ)、C+標(biāo)準(zhǔn)庫簡介、算法基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、C++標(biāo)準(zhǔn)庫進(jìn)階。本書主要面向計(jì)算機(jī)專業(yè)零基礎(chǔ)的學(xué)習(xí)者,特別適合作為學(xué)習(xí)C++語言、數(shù)據(jù)結(jié)構(gòu)與算法的入門書籍,也可作為計(jì)算機(jī)專業(yè)研究生入學(xué)考試復(fù)試上機(jī)考試、各類算法考試和算法競賽的輔導(dǎo)書籍。
(責(zé)任編輯郵箱:jinacmp@163.com)
我是一名在計(jì)算機(jī)這門學(xué)科上開竅比較晚的學(xué)生,在本科一年級下學(xué)期,我通過轉(zhuǎn)專業(yè)的方式進(jìn)入了計(jì)算機(jī)專業(yè),當(dāng)時也并不是多么喜歡計(jì)算機(jī)這個專業(yè),只是覺得原專業(yè)并不適合我,然后便“隨意”地選擇了計(jì)算機(jī)專業(yè)作為我的轉(zhuǎn)入專業(yè),F(xiàn)在想起來不禁要感謝當(dāng)初的自己,因?yàn)樵诤髞淼膶W(xué)習(xí)過程中我的確愛上了“編程”這項(xiàng)工作。當(dāng)然,這段學(xué)習(xí)過程并沒有那么一帆風(fēng)順 由于我本科階段都是“渾渾噩噩”地度過的,沒做什么實(shí)事,成績自然不理想,保研已經(jīng)毫無希望,于是我決定報(bào)考浙江大學(xué)計(jì)算機(jī)學(xué)院的研究生。由于浙江大學(xué)計(jì)算機(jī)學(xué)院研究生的機(jī)試成績可以使用甲級成績代替,我決定在本科三年級的寒假準(zhǔn)備甲級考試。在朋友們的推薦下,我購買了胡凡師兄的《算法筆記》,開始夜以繼日、孜孜不倦地狂刷甲級乙級題庫。在這個過程中我不僅感覺自己的編程能力得到了很大提升,更重要的是我似乎感受到了編程的魅力,開始真正喜歡上了編程這項(xiàng)工作。可以說,胡凡師兄的《算法筆記》是我學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的真正啟蒙書,我由衷地感謝胡凡師兄能夠嚴(yán)謹(jǐn)細(xì)致地完成《算法筆記》這部有啟發(fā)意義的著作 在枯燥、痛苦與快樂交織在一起的刷題過程中,我開始嘗試著為每一道題編寫自己的博客。后來的事實(shí)證明,對程序員來說,編寫博客的確是一件非常有意義的事情。在我編寫博客的過程中,有許多同學(xué)和朋友在社區(qū)中給予我鼓勵和支持,這使我受到了莫大的鼓舞,在這里對他們致以由衷的感謝 由于我系統(tǒng)學(xué)習(xí)過C+語法,博客中引用的代碼便大多以C+語法的形式給出。這使得相對于網(wǎng)絡(luò)上給出的同一題的代碼中,我的代碼總會顯得更加簡潔,也更少。我開始越發(fā)感受到C+的強(qiáng)大魅力,并在博客中盡可能多地利用C+的新特性來解題。但是,網(wǎng)絡(luò)上的博客終究不系統(tǒng),許多相似的題目和解法不容易聯(lián)系在一起,隨著我編寫的博客越來越多,這種感覺在我腦海中越發(fā)強(qiáng)烈。后來有人咨詢我是否有興趣在已發(fā)表的博客基礎(chǔ)上,撰寫一本系統(tǒng)介紹C+與相關(guān)題目求解方法的書籍,我開始萌發(fā)了編寫一部書籍的想法。但是面對編撰書籍的繁雜工作和碩士期間的學(xué)業(yè)壓力,這個看似簡單卻并不簡單的想法又開始動搖了。我咨詢了包括胡凡師兄在內(nèi)的許多師兄師姐,他們切實(shí)的回復(fù)以及吉玲編輯對本書的莫大興趣讓我下定決心開始撰寫本書籍 在經(jīng)歷了無數(shù)個日日夜夜的辛苦工作、無數(shù)次的編輯和修訂后,我的工作成果終于送到了讀者的手上。希望它能讓讀者滿意!但是,由于我水平有限,盡管對本書進(jìn)行了多次校對,書中可能仍有一些有待改進(jìn)的地方,敬請廣大讀者提出寶貴建議 日沉云起于杭州
關(guān)
部分C+基礎(chǔ)章C+簡2
從“Hewo”
3
算 4
4
浮
4
布
字面值
6
算術(shù)運(yùn)
遞增和遞減運(yùn)
邏輯運(yùn)算符和關(guān)系運(yùn)
條件運(yùn)
位運(yùn)
賦值運(yùn)算符和復(fù)合賦值9
代用運(yùn)
9
語
wh語
do-wh語句 11
語句11
br語句和conti語句
g語
C++的輸入14
用來輸
用c來輸
優(yōu)化cin/c19
C 語言的輸入輸20
sc20
print
算術(shù)類型的類型轉(zhuǎn)
算術(shù)類型的隱式類型轉(zhuǎn)
算術(shù)類型的顯式類型轉(zhuǎn)
算術(shù)類型數(shù)據(jù)運(yùn)算時可能出現(xiàn)25
整型數(shù)據(jù)的數(shù)據(jù)溢出錯
浮點(diǎn)數(shù)類型的相等性比26
例題剖
例題與習(xí)第2 章C+程35
35
引用的基本概
拷貝賦值與引用賦
37
V23
函數(shù)基
傳值調(diào)用與傳引用調(diào)
指針做函數(shù)形
函數(shù)重
默認(rèn)參
C++標(biāo)準(zhǔn)庫中的常用數(shù)學(xué)函
內(nèi)置數(shù)
一維數(shù)
數(shù)組與指
二維數(shù)
多維數(shù)
數(shù)組做函數(shù)形
字符串(1):strin
str的初始
str的輸入與輸
字典序比
str中內(nèi)置的字符串操
C++標(biāo)準(zhǔn)庫中的常用字符處理函
例題剖
字符串(2):字符數(shù)
字符數(shù)組的初始化和存64
字符數(shù)組的輸入與輸
cstr頭文件中處理字符數(shù)組66
2C++語67
類型別
co67
a類型說明
錄
范圍語句
類和對
類的定義和實(shí)例
構(gòu)造函
成員函
再談變
全局變量和局部變
全局區(qū)、棧區(qū)、堆
變量的默認(rèn)初始化、值81
注意控制數(shù)組和容器83
再談引
例題剖
例題與習(xí)
部分C+標(biāo)準(zhǔn)庫簡章準(zhǔn)備知
時間復(fù)雜
空間復(fù)雜
be成員和成員
迭代器運(yùn)算
迭代器操
迭代器的類型
迭代器范圍
反向迭代器
p
tu
章順序容器
順序容器概覽
順序容器對象的定義和初始化
順序容器的大小操作和賦
訪問元素
添加元素
刪除元素
vec、str、ar、de迭代器的其
例題剖析
再談str
構(gòu)造str的其他方法
修改str的其他方法
str搜索操作
數(shù)值轉(zhuǎn)換stringstr:按任意字符分割
例題剖析
例題與習(xí)題
泛型算法
泛型算法概覽
自定義排序
比較規(guī)則代碼的編寫
重載小于運(yùn)算符
比較函數(shù)函數(shù)對象/仿函數(shù)
與內(nèi)置小于運(yùn)算符相反
排名
總結(jié)
例題剖析
泛型算法大觀園
只讀算法
寫算法
排序與劃分算法
在有序序列上的泛型算法
堆操作算法
排列算法
最大值最小值算法
數(shù)值算法
例題剖析
5 l容器特有的算法
例題與習(xí)題第6 章容器適配器
容器適配器概覽
st
qu
priority_qu
第7 章關(guān)聯(lián)容器
關(guān)聯(lián)容器概覽
關(guān)聯(lián)容器對象的定義和初始化
關(guān)聯(lián)容器的共有操作
和unordered_的下
有序關(guān)聯(lián)容器的二分查找操作
關(guān)聯(lián)容器對關(guān)鍵字類型的要求