注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++函數(shù)與算法速查寶典

C/C++函數(shù)與算法速查寶典

C/C++函數(shù)與算法速查寶典

定 價(jià):¥89.90

作 者: 陳銳 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115588357 出版時(shí)間: 2022-09-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 376 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書全面、系統(tǒng)地講解了C和C++中的常用函數(shù)及算法,其內(nèi)容分為3篇,共29章,包括近300個(gè)常用函數(shù)和九大類算法,還以實(shí)例形式講解了Visual Studio調(diào)試技術(shù)。其中,在C語(yǔ)言函數(shù)篇,對(duì)每一個(gè)函數(shù)的講解都包含了函數(shù)原型、功能、參數(shù)、返回值、范例、解析等內(nèi)容,部分函數(shù)會(huì)通過(guò)綜合實(shí)例來(lái)輔助理解。在算法篇,每個(gè)算法采用相應(yīng)實(shí)例進(jìn)行講解,包含問(wèn)題、分析、實(shí)現(xiàn)、說(shuō)明等內(nèi)容。在C++輸入/輸出流與容器篇,針對(duì)每個(gè)類庫(kù)選取了最常用的函數(shù),按構(gòu)造類函數(shù)、存取類函數(shù)、操作類函數(shù)等類別從函數(shù)原型、函數(shù)功能、函數(shù)參數(shù)、函數(shù)返回值、函數(shù)范例、函數(shù)解析等方面進(jìn)行了介紹。本書適合學(xué)習(xí)C/C++函數(shù)和算法的初、中級(jí)開(kāi)發(fā)人員,愛(ài)好者和大、中專院校學(xué)生使用。對(duì)于經(jīng)常使用C/C++進(jìn)行開(kāi)發(fā)的程序員,本書更是一本不可多得的案頭常備工具書。

作者簡(jiǎn)介

  1.陳銳,碩士生導(dǎo)師,中國(guó)人工智能學(xué)會(huì)情感智能專委會(huì)委員、中國(guó)圖象圖形學(xué)學(xué)會(huì)人機(jī)交互專委會(huì)委員。目前從事數(shù)據(jù)結(jié)構(gòu)與算法方面的教學(xué)工作,以及人工智能、推薦系統(tǒng)方面的科研工作。出版多部作品,其中兩部獲批省部級(jí)規(guī)劃教材立項(xiàng)建設(shè)。2.孫玉勝,碩士生導(dǎo)師,電子書信息工程國(guó)家專業(yè)建設(shè)點(diǎn)負(fù)責(zé)人,“Python 程序設(shè)計(jì)”省級(jí)課程負(fù)責(zé)人。目前從事電子信息、軟件工程專業(yè)教學(xué)和科研工作。3.梁輝,教授,博士生導(dǎo)師,河南省計(jì)算機(jī)動(dòng)畫實(shí)現(xiàn)技術(shù)國(guó)際聯(lián)合實(shí)驗(yàn)室主任,數(shù)字媒體技術(shù)專業(yè)帶頭人,“計(jì)算機(jī)動(dòng)畫與虛擬現(xiàn)實(shí)”科技創(chuàng)新團(tuán)隊(duì)帶頭人。目前從事計(jì)算機(jī)動(dòng)畫、數(shù)字媒體技術(shù)、虛擬現(xiàn)實(shí)的科研工作。

圖書目錄

目  錄
第 1篇 C語(yǔ)言函數(shù)篇
第 1章 ctype.h庫(kù)函數(shù) 2
ctype.h庫(kù)函數(shù)主要包括一些字符處理函數(shù)。例如,其中的isalnum函數(shù)用來(lái)判斷是否是英文字母或數(shù)字字符,tolower函數(shù)是將大寫字母轉(zhuǎn)換為小寫字母。
1.1 字符測(cè)試函數(shù) 2
1.1.1 isalnum函數(shù)—判斷是否是英文字母或數(shù)字字符 2
1.1.2 isalpha函數(shù)—判斷是否為英文字母 3
1.1.3 isascii函數(shù)—判斷ASCII碼是否位于0~127 4
1.1.4 iscntrl函數(shù)—判斷是否是控制字符 5
1.1.5 isdigit函數(shù)—判斷是否是數(shù)字字符 6
1.1.6 isgraph函數(shù)—判斷是否是可打印字符(不包括空格) 7
1.1.7 islower函數(shù)—判斷是否是小寫英文字母 8
1.1.8 isprint函數(shù)—判斷是否是可打印字符(包括空格) 10
1.1.9 ispunct函數(shù)—判斷是否是標(biāo)點(diǎn)符號(hào) 11
1.1.10 isspace函數(shù)—判斷是否是 空白符 12
1.1.11 isxdigit函數(shù)—判斷是否是 十六進(jìn)制字符 13
1.2 字符轉(zhuǎn)換函數(shù) 15
1.2.1 tolower函數(shù)—將大寫英文字母轉(zhuǎn)換為小寫英文字母 15
1.2.2 toupper函數(shù)—將小寫英文字母轉(zhuǎn)換為大寫英文字母 16
1.2.3 toascii函數(shù)—將字符轉(zhuǎn)換為ASCII碼 17
第 2章 stdio.h庫(kù)函數(shù) 19
stdio.h庫(kù)函數(shù)主要包括常用的輸入/輸出函數(shù)。例如,其中的getch函數(shù)用來(lái)接受從鍵盤輸入的字符,printf函數(shù)用來(lái)格式化輸出數(shù)據(jù),fprintf函數(shù)用來(lái)格式化輸出數(shù)據(jù)到指定的文件中。
2.1 字符輸入/輸出函數(shù) 19
2.1.1 getch函數(shù)和getche函數(shù)—接受從鍵盤輸入的字符 19
2.1.2 getchar函數(shù)—接受一個(gè)字符并顯示在屏幕上 20
2.1.3 gets函數(shù)—讀取一個(gè)字符串 21
2.1.4 putchar函數(shù)—在屏幕上輸出一個(gè)字符 23
2.1.5 puts函數(shù)—在屏幕上輸出一個(gè)字符串 24
2.2 格式化輸入/輸出函數(shù) 25
2.2.1 printf函數(shù)—格式化輸出數(shù)據(jù) 25
2.2.2 scanf函數(shù)—格式化輸入數(shù)據(jù) 28
2.2.3 sprintf函數(shù)—輸出格式化數(shù)據(jù)到指定的數(shù)組中 30
2.2.4 sscanf函數(shù)—從字符串讀取格式化數(shù)據(jù) 31
2.2.5 vprintf函數(shù)—在屏幕上輸出格式化變長(zhǎng)參數(shù)列表 33
2.2.6 vscanf函數(shù)—讀取從鍵盤輸入的格式化數(shù)據(jù) 34
2.3 文件輸入/輸出函數(shù) 35
2.3.1 fgetc函數(shù)和getc函數(shù)—從文件中讀取一個(gè)字符 35
2.3.2 fgets函數(shù)—從文件中讀取多個(gè)字符 36
2.3.3 fprintf函數(shù)—格式化輸出數(shù)據(jù)到指定的文件中 38
2.3.4 fscanf函數(shù)—從文件中讀取格式化數(shù)據(jù) 39
2.3.5 fputc函數(shù)和putc函數(shù)—輸出一個(gè)字符到指定的文件中 40
2.3.6 fputs函數(shù)—輸出一個(gè)字符串到指定的文件中 42
2.3.7 fread函數(shù)—從文件中讀取一個(gè)數(shù)據(jù)塊 43
2.3.8 fwrite函數(shù)—向文件中寫入數(shù)據(jù)塊 44
2.3.9 vfprintf函數(shù)—輸出格式化數(shù)據(jù)到指定的文件 46
2.3.10 vfscanf函數(shù)—從文件中讀取 格式化數(shù)據(jù) 47
2.4 文件定位函數(shù) 48
2.4.1 fseek函數(shù)—移動(dòng)文件位置指針到指定位置 49
2.4.2 ftell函數(shù)—得到文件位置指針的當(dāng)前值 50
2.4.3 rewind函數(shù)—將文件位置指針移動(dòng)到文件的開(kāi)頭 51
2.5 文件存取操作函數(shù) 53
2.5.1 fclose函數(shù)—關(guān)閉文件 53
2.5.2 fflush函數(shù)—將緩沖區(qū)的內(nèi)容寫入文件 54
2.5.3 fopen函數(shù)—打開(kāi)文件 55
2.5.4 remove函數(shù)—?jiǎng)h除文件 57
2.5.5 rename函數(shù)—重命名文件 58
2.6 文件錯(cuò)誤控制函數(shù) 60
2.6.1 clearerr函數(shù)—清除文件中的錯(cuò)誤標(biāo)志 60
2.6.2 feof函數(shù)—是否到了文件末尾 61
2.6.3 ferror函數(shù)—檢查文件操作是否出現(xiàn)了錯(cuò)誤 62
2.7 文件輸入/輸出函數(shù)綜合應(yīng)用范例 64
第3章 string.h庫(kù)函數(shù) 70
string.h庫(kù)函數(shù)主要包括常用的字符串操作函數(shù)。例如,其中的strcmp函數(shù)用來(lái)比較兩個(gè)字符串的大小,strcpy函數(shù)用來(lái)將一個(gè)字符串拷貝到另一個(gè)字符串中,strcat函數(shù)用來(lái)將兩個(gè)字符串連接在一起。
3.1 字符串比較函數(shù) 70
3.1.1 memcmp函數(shù)和memicmp函數(shù)—比較兩個(gè)字符串 70
3.1.2 strcmp函數(shù)和stricmp函數(shù)—比較兩個(gè)字符串 72
3.1.3 strncmp函數(shù)和strnicmp函數(shù)—比較兩個(gè)字符串 74
3.2 字符串拷貝函數(shù) 75
3.2.1 memcpy函數(shù)—拷貝n個(gè)字節(jié)到另一個(gè)數(shù)組 75
3.2.2 memmove函數(shù)—拷貝n個(gè)字節(jié)到數(shù)組中(可重疊) 76
3.2.3 strcpy函數(shù)—字符串拷貝 77
3.2.4 strncpy函數(shù)—拷貝n個(gè)字符到目的字符數(shù)組 78
3.3 字符串連接函數(shù) 80
3.3.1 strcat函數(shù)—連接兩個(gè)字符串 80
3.3.2 strncat函數(shù)—將字符串1的前n個(gè)字符連接到字符串2 81
3.4 字符串查找函數(shù) 82
3.4.1 memchr函數(shù)—在內(nèi)存塊中查找字符 83
3.4.2 strchr函數(shù)—在字符串中查找字符 84
3.4.3 strstr函數(shù)—查找字符串 85
3.4.4 strtok函數(shù)—分解字符串 87
3.5 字符串轉(zhuǎn)換函數(shù) 88
3.5.1 strlwr函數(shù)—將大寫字母轉(zhuǎn)換為小寫字母 88
3.5.2 strrev函數(shù)—將字符串逆置 90
3.5.3 strupr函數(shù)—將小寫字母轉(zhuǎn)換為大寫字母 91
3.6 其他函數(shù) 92
3.6.1 memset函數(shù)—用指定的字符填充字符串 92
3.6.2 strlen函數(shù)—求字符串的長(zhǎng)度 93
3.7 字符串函數(shù)綜合應(yīng)用范例 94
第4章 stdlib.h庫(kù)函數(shù) 99
stdlib.h庫(kù)函數(shù)主要包括字符串轉(zhuǎn)換函數(shù)、動(dòng)態(tài)內(nèi)存管理函數(shù)、過(guò)程控制函數(shù)等。例如,atof 函數(shù)是將字符串轉(zhuǎn)換為雙精度浮點(diǎn)數(shù),malloc函數(shù)是分配內(nèi)存空間,abort函數(shù)用來(lái)終止當(dāng)前的進(jìn)程。
4.1 字符串轉(zhuǎn)換函數(shù) 99
4.1.1 atof函數(shù)—將字符串轉(zhuǎn)換為雙精度浮點(diǎn)數(shù) 99
4.1.2 atoi函數(shù)—將字符串轉(zhuǎn)換為整數(shù) 101
4.1.3 atol函數(shù)—將字符串轉(zhuǎn)換為長(zhǎng)整型數(shù) 102
4.1.4 strtod函數(shù)—將字符串轉(zhuǎn)換為雙精度浮點(diǎn)數(shù) 103
4.1.5 strtol函數(shù)—將字符串轉(zhuǎn)換為長(zhǎng)整型數(shù) 104
4.2 動(dòng)態(tài)內(nèi)存管理函數(shù) 106
4.2.1 malloc函數(shù)—分配內(nèi)存空間 106
4.2.2 calloc函數(shù)—分配內(nèi)存空間并初始化 107
4.2.3 free函數(shù)—釋放內(nèi)存空間 109
4.2.4 realloc函數(shù)—重新分配內(nèi)存空間 111
4.2.5 動(dòng)態(tài)內(nèi)存管理函數(shù)綜合應(yīng)用范例 112
4.3 隨機(jī)數(shù)生成函數(shù) 116
4.3.1 rand函數(shù)—產(chǎn)生偽隨機(jī)數(shù) 116
4.3.2 srand函數(shù)—初始化隨機(jī)數(shù)發(fā)生器 117
4.4 查找函數(shù)和排序函數(shù) 118
4.4.1 bsearch函數(shù)—折半查找 118
4.4.2 qsort函數(shù)—快速排序 119
4.4.3 排序函數(shù)和查找函數(shù)綜合應(yīng)用范例 121
4.5 過(guò)程控制函數(shù) 123
4.5.1 abort函數(shù)—終止當(dāng)前進(jìn)程 123
4.5.2 exit函數(shù)—退出當(dāng)前程序 126
4.5.3 system函數(shù)—執(zhí)行系統(tǒng)命令 127
第5章 math.h庫(kù)函數(shù) 129
math.h 庫(kù)函數(shù)主要包括三角函數(shù)、指數(shù)和對(duì)數(shù)函數(shù)、冪指數(shù)和開(kāi)方函數(shù)等。例如,cos 函數(shù)用來(lái)求角度的余弦值,log 函數(shù)用來(lái)求自然對(duì)數(shù),pow 10函數(shù)用來(lái)求10exp的值。
5.1 三角函數(shù) 129
5.1.1 cos函數(shù)—求角度的余弦值 129
5.1.2 sin函數(shù)—求角度的正弦值 130
5.1.3 tan函數(shù)—求角度的正切值 131
5.1.4 acos函數(shù)—求角度的反余弦值 132
5.1.5 asin函數(shù)—求角度的反正弦值 133
5.1.6 atan函數(shù)—求角度的反正切值 134
5.2 指數(shù)和對(duì)數(shù)函數(shù) 136
5.2.1 exp函數(shù)—求以自然數(shù)e為底的指數(shù)值 136
5.2.2 log函數(shù)—求自然對(duì)數(shù) 137
5.2.3 log10函數(shù)—求對(duì)數(shù) 138
5.3 冪指數(shù)和開(kāi)方函數(shù) 139
5.3.1 pow函數(shù)—求baseexp的值 139
5.3.2 pow10函數(shù)—求10exp的值 140
5.3.3 sqrt函數(shù)—求平方根 141
5.4 絕對(duì)值函數(shù) 142
5.4.1 abs函數(shù)—求整數(shù)的絕對(duì)值 143
5.4.2 fabs函數(shù)—求浮點(diǎn)數(shù)的絕對(duì)值 144
5.4.3 labs函數(shù)—求長(zhǎng)整型數(shù)據(jù)的絕對(duì)值 145
5.5 其他函數(shù) 146
5.5.1 floor函數(shù)—求不大于x的最大整數(shù) 146
5.5.2 fmod函數(shù)—返回x/y的余數(shù) 147
5.5.3 frexp函數(shù)—將浮點(diǎn)數(shù)分解為尾數(shù)和指數(shù) 148
5.5.4 hypot函數(shù)—根據(jù)直角邊求斜邊 149
5.5.5 modf函數(shù)—將浮點(diǎn)數(shù)分解為整數(shù)部分和小數(shù)部分 151
5.5.6 poly函數(shù)—計(jì)算xn的值 152
5.6 數(shù)學(xué)函數(shù)綜合應(yīng)用范例 153
5.6.1 計(jì)算方程的根 153
5.6.2 求整數(shù)序列的第i個(gè)元素 155
5.6.3 求2s+2t的第 10項(xiàng) 156
第6章 stdarg.h庫(kù)函數(shù) 159
stdarg.h 庫(kù)函數(shù)主要包括3個(gè)用來(lái)處理變長(zhǎng)參數(shù)的宏。例如,va_arg宏用來(lái)獲取下一個(gè)參數(shù),va_start宏用來(lái)初始化變長(zhǎng)參數(shù)列表。
6.1 va_arg宏 159
6.2 va_start宏 161
6.3 va_end宏 162
6.4 可變參數(shù)函數(shù)綜合應(yīng)用范例 164
第7章 time.h庫(kù)函數(shù) 166
time.h 庫(kù)函數(shù)主要包括一些時(shí)間處理函數(shù)。例如,其中的 time 函數(shù)用來(lái)得到當(dāng)前的時(shí)間,ctime 函數(shù)用來(lái)將時(shí)間轉(zhuǎn)換為字符串形式。
7.1 時(shí)間操作函數(shù) 166
7.1.1 clock函數(shù)—返回CPU時(shí)鐘計(jì)時(shí)單元 166
7.1.2 difftime函數(shù)—計(jì)算兩個(gè)時(shí)鐘之間的間隔 167
7.1.3 time函數(shù)—得到當(dāng)前的時(shí)間 169
7.2 時(shí)間格式轉(zhuǎn)換函數(shù) 170
7.2.1 asctime函數(shù)—將時(shí)間格式轉(zhuǎn)換為字符串形式 170
7.2.2 ctime函數(shù)—將時(shí)間轉(zhuǎn)換為字符串形式 171
7.2.3 gmtime函數(shù)—返回(格林尼治)時(shí)間結(jié)構(gòu)的指針 172
7.2.4 localtime函數(shù)—返回指向時(shí)間結(jié)構(gòu)的指針 174
7.2.5 mktime函數(shù)—將struct tm格式的時(shí)間轉(zhuǎn)換為秒 175
7.2.6 strftime函數(shù)—將時(shí)間格式化為字符串 176
第 2篇 算法篇
第8章 排序算法 180
排序算法是程序設(shè)計(jì)中較為常用的算法。排序算法主要包括插入排序、交換排序、選擇排序、歸并排序和基數(shù)排序。
8.1 插入排序 180
8.1.1 直接插入排序 180
8.1.2 折半插入排序 182
8.1.3 希爾排序 185
8.2 交換排序 187
8.2.1 冒泡排序 188
8.2.2 快速排序 191
8.3 選擇排序 195
8.3.1 簡(jiǎn)單選擇排序 195
8.3.2 堆排序 199
8.4 歸并排序 205
8.5 基數(shù)排序 207
第9章 查找算法 214
查找算法是程序設(shè)計(jì)中常用的算法。查找算法主要包括基于線性表的查找、基于樹(shù)的查找和哈希表的查找。
9.1 基于線性表的查找 214
9.1.1 順序查找 214
9.1.2 折半查找 216
9.1.3 分塊查找 219
9.2 基于樹(shù)的查找 222
9.2.1 基于二叉排序樹(shù)的查找操作 222
9.2.2 基于二叉排序樹(shù)的插入操作 224
9.3 哈希表的查找 227
9.3.1 構(gòu)造哈希表 227
9.3.2 處理沖突 229
第 10章 遞推算法 234
遞推算法是通過(guò)不斷迭代,用舊的變量值遞推得到新值。遞推算法常用來(lái)解決重復(fù)計(jì)算的問(wèn)題,如斐波那契數(shù)列、存取問(wèn)題等。
10.1 順推法 234
10.1.1 斐波那契數(shù)列 234
10.1.2 將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 236
10.1.3 求最大公約數(shù)和最小公倍數(shù) 238
10.1.4 質(zhì)因數(shù)的分解 240
10.1.5 角谷猜想 241
10.1.6 母牛生小牛問(wèn)題 242
10.1.7 楊輝三角 243
10.2 逆推法 245
10.2.1 猴子摘桃問(wèn)題 245
10.2.2 存取問(wèn)題 246
第 11章 枚舉算法 248
枚舉算法也稱窮舉算法,它是編程中常用的一種算法。在解決某些問(wèn)題時(shí),可能無(wú)法按照一定規(guī)律從眾多的候選解中找出正確的答案。此時(shí),可以從眾多的候選解中逐一取出候選答案,并驗(yàn)證候選答案是否為正確的解。
11.1 判斷n是否能被3、5、7整除 248
11.2 百錢買百雞 251
11.3 五猴分桃 252
11.4 求最大連續(xù)子序列和 254
11.5 填數(shù)游戲 256
11.6 誰(shuí)在說(shuō)謊 257
第 12章 遞歸算法 260
遞歸是自己調(diào)用自己,它將一個(gè)復(fù)雜的問(wèn)題進(jìn)行整體考慮,只要知道最基本問(wèn)題的答案,就可以得到整個(gè)問(wèn)題的答案。常見(jiàn)的遞歸問(wèn)題有階乘、斐波那契數(shù)列和最大公約數(shù)等。
12.1 簡(jiǎn)單遞歸 260
12.1.1 求n的階乘 260
12.1.2 斐波那契數(shù)列 263
12.1.3 求n個(gè)數(shù)中的最大者 265
12.1.4 進(jìn)制轉(zhuǎn)換 266
12.1.5 求最大公約數(shù) 267
12.2 復(fù)雜遞歸 268
12.2.1 逆置字符串 268
12.2.2 和式分解 270
12.2.3 和式分解(分解出的和數(shù)非遞 增排列) 272
12.2.4 求無(wú)序序列中的第k大 元素 273
12.2.5 從1~n個(gè)自然數(shù)中任選r個(gè) 數(shù)的所有組合數(shù) 275
12.2.6 大牛生小牛問(wèn)題 277
第 13章 貪心算法 279
貪心算法是一種不追求最優(yōu)解,只希望找到較為滿意解的方法。貪心算法省去了為找最優(yōu)解要窮盡所有可能而必須耗費(fèi)的大量時(shí)間,因此,它一般可以快速得到比較滿意的解。貪心算法常以當(dāng)前情況為基礎(chǔ)做最優(yōu)選擇,而不考慮各種可能的整體情況,所以貪心算法不需要回溯。
13.1 找零錢問(wèn)題 279
13.2 哈夫曼編碼 281
13.3 加油站問(wèn)題 288
第 14章 回溯算法 290
回溯算法也稱為試探法,是一種選優(yōu)搜索法。該方法首先暫時(shí)放棄關(guān)于問(wèn)題規(guī)模大小的限制,并將問(wèn)題的候選解按照某種順序逐一枚舉和檢驗(yàn)。當(dāng)發(fā)現(xiàn)當(dāng)前的候選解不可能是解時(shí),就選擇下一個(gè)候選解;倘若當(dāng)前候選解只是不滿足問(wèn)題的規(guī)模要求,但滿足所有其他要求時(shí),則繼續(xù)擴(kuò)大當(dāng)前候選解的規(guī)模,并繼續(xù)向前試探。如果當(dāng)前的候選解滿足包括問(wèn)題規(guī)模在內(nèi)的所有要求,則該候選解就是問(wèn)題的一個(gè)解。在尋找解的過(guò)程中,放棄當(dāng)前候選解,退回上一步重新選擇候選解的過(guò)程就稱為回溯。
14.1 和式分解(非遞歸實(shí)現(xiàn)) 290
14.2 填字游戲 293
14.3 裝箱問(wèn)題 297
第 15章 分治算法 300
分治算法是將一個(gè)規(guī)模為N的問(wèn)題分解為K個(gè)規(guī)模較小的子問(wèn)題進(jìn)行求解,這些子問(wèn)題相互獨(dú)立且與原問(wèn)題性質(zhì)相同。求出子問(wèn)題的解,就可得到原問(wèn)題的解。最大子序列和、求x的n次冪、眾數(shù)問(wèn)題等就是利用分治算法來(lái)實(shí)現(xiàn)的。
15.1 最大子序列和問(wèn)題 300
15.2 求x的n次冪 302
15.3 眾數(shù)問(wèn)題 304
15.4 求n個(gè)數(shù)中的最大者和最小者 306
15.5 整數(shù)劃分問(wèn)題 308
15.6 大整數(shù)的乘法問(wèn)題 310
第 16章 矩陣算法 315
矩陣算法主要通過(guò)分析數(shù)組中元素值的變化規(guī)律,巧妙利用數(shù)組下標(biāo)與元素值之間的關(guān)系設(shè)計(jì)算法。矩陣算法往往需要交換或者存取矩陣中的某個(gè)元素,這就需要靈活掌握二維數(shù)組兩個(gè)下標(biāo)的變換。
16.1 打印拉丁方陣 315
16.2 打印蛇形方陣 317
16.3 打印螺旋矩陣(非遞歸和遞歸實(shí)現(xiàn)) 318
16.4 打印逆螺旋矩陣 321
16.5 將矩陣旋轉(zhuǎn)90度 322
16.6 將上三方陣以行序?yàn)橹餍蜣D(zhuǎn)換為以列序?yàn)橹餍?324
第 17章 實(shí)用算法 327
在學(xué)習(xí)和工作中,經(jīng)常會(huì)遇到一些與實(shí)際生活緊密相關(guān)的問(wèn)題,這些問(wèn)題也可通過(guò)算法來(lái)得到答案,從而大大提高我們的學(xué)習(xí)和工作效率。比較常見(jiàn)的實(shí)用算法有計(jì)算一年中的第幾天、大小寫金額轉(zhuǎn)換、微信搶紅包問(wèn)題、求算術(shù)表達(dá)式的值、一元多項(xiàng)式的乘法、大整數(shù)乘法。
17.1 一年中的第幾天 327
17.2 大小寫金額轉(zhuǎn)換 329
17.3 將15位身份證號(hào)轉(zhuǎn)換為18位 333
17.4 微信搶紅包問(wèn)題 335
17.5 求算術(shù)表達(dá)式的值 336
17.6 一元多項(xiàng)式的乘法 345
17.7 大整數(shù)乘法 351
17.8 迷宮求解 353
第 18章 程序調(diào)試技術(shù) 359
程序調(diào)試也是程序員必備的一項(xiàng)技能。對(duì)于初學(xué)者來(lái)說(shuō),通過(guò)不斷調(diào)試程序,既驗(yàn)證了程序的正確性,又深入地理解了程序的算法思想,提高了調(diào)試程序的能力,為今后深入學(xué)習(xí)計(jì)算機(jī)的其他內(nèi)容打下堅(jiān)實(shí)的基礎(chǔ)。
18.1 為什么要調(diào)試程序 359
18.2 程序調(diào)試 360
18.2.1 如何使用Visual Studio 2019開(kāi)發(fā) 環(huán)境調(diào)試程序 360
18.2.2 冒泡排序程序調(diào)試 366
18.2.3 合并鏈表程序調(diào)試 371
以下章節(jié)見(jiàn)電子資源
第3篇 C++輸入/輸出流與容器篇
第 19章 ios_base類 379
ios_base類主要是C++輸入/輸出流的基類,它主要包含流的格式化函數(shù)。例如,flags函數(shù)用來(lái)獲取或設(shè)置流格式,precision函數(shù)用來(lái)得到/設(shè)置浮點(diǎn)數(shù)的精度。
19.1 flags函數(shù)—得到/設(shè)置流的格式標(biāo)志 380
19.2 setf函數(shù)和unsetf函數(shù)—設(shè)置和清除流的格式標(biāo)志 381
19.3 precision函數(shù)—得到/設(shè)置浮點(diǎn)數(shù)的精度 383
19.4 width函數(shù)—得到/設(shè)置域?qū)?384
第 20章 iostream類 386
iostream 類派生自istream類和 ostream類。iostream 類中的函數(shù)非常常用。例如,isotream類的對(duì)象cout用來(lái)控制輸出、cin用來(lái)控制輸入。
20.1 get函數(shù)—無(wú)格式的輸入操作 388
20.2 getline函數(shù)—接受輸入的字符串 390
20.3 ignore函數(shù)—忽略指定的字符 391
20.4 peek函數(shù)—從流中接受輸入的字符 392
20.5 read函數(shù)—讀取一個(gè)字符塊 393
20.6 putback函數(shù)—將讀取的字符返回給輸入流 394
20.7 put函數(shù)—輸出字符 396
20.8 fill函數(shù)—得到/設(shè)置填充字符 397
第 21章 文件流類 399
ifstream類、ofstream類和fstream類都是對(duì)文件進(jìn)行讀/寫操作的類,我們將這些類統(tǒng)稱為文件流類。在C++中,要對(duì)文件進(jìn)行讀/寫操作,就需要先將文件流類與文件關(guān)聯(lián)起來(lái)(一般采用open的方式或構(gòu)造函數(shù)的方式),然后再利用文件流對(duì)文件進(jìn)行操作。
21.1 ifstream構(gòu)造函數(shù)—?jiǎng)?chuàng)建輸入流對(duì)象 400
21.2 rdbuf函數(shù)—返回指向filebuf的指針 401
21.3 is_open函數(shù)—檢測(cè)文件是否被打開(kāi) 403
21.4 open函數(shù)和close函數(shù)—打開(kāi)和關(guān)閉文件 404
21.5 read函數(shù)和write函數(shù)—從流中讀取數(shù)據(jù)和向流中寫入數(shù)據(jù) 406
21.6 seekg函數(shù)和tellg函數(shù)—設(shè)置和得到流的位置指針位置 407
21.7 seekp函數(shù)和tellp函數(shù)—設(shè)置和得到文件的位置指針位置 409
21.8 flush函數(shù)—刷新輸出流緩沖區(qū) 411
第 22章 string類 412
string類主要用于消除對(duì)char*的使用,以保持與現(xiàn)有代碼的兼容性,它還會(huì)自動(dòng)進(jìn)行內(nèi)存管理,便于對(duì)字符進(jìn)行操作,其性能比使用char*更佳。
22.1 字符串運(yùn)算符函數(shù) 412
22.1.1 字符串構(gòu)造函數(shù)—構(gòu)造字符 串對(duì)象 412
22.1.2 =運(yùn)算符函數(shù)—將字符串內(nèi)容 拷貝到新字符串對(duì)象 414
22.1.3 +和+=運(yùn)算符函數(shù)—連接 字符串 415
22.1.4 ==、!=、、=運(yùn)算符 函數(shù)—比較字符串 417
22.1.5 []運(yùn)算符函數(shù)—返回string中 的某個(gè)字符 418
22.1.6 at函數(shù)—返回string中的某個(gè) 字符(范圍檢測(cè)) 419
22.2 字符串迭代器函數(shù) 420
22.2.1 begin函數(shù)和end函數(shù)—返回 第 一個(gè)字符和最后一個(gè)字符的 迭代器 420
22.2.2 rbegin函數(shù)和rend函數(shù)—返回 相對(duì)于begin函數(shù)和end函數(shù)的 反向迭代器 422
22.3 字符串長(zhǎng)度函數(shù) 423
22.3.1 length函數(shù)和size函數(shù)—返回 字符個(gè)數(shù) 423
22.3.2 max_size函數(shù)—返回string能 容納的最大字符個(gè)數(shù) 424
22.3.3 capacity函數(shù)—返回分配的 存儲(chǔ)空間大小 425
22.3.4 resize函數(shù)—設(shè)置string的 長(zhǎng)度 427
22.3.5 reserve函數(shù)—為string對(duì)象 預(yù)留空間 428
22.3.6 empty函數(shù)—判斷string是否 為空 429
22.4 字符串操作函數(shù) 430
22.4.1 insert函數(shù)—判斷string是否 為空 430
22.4.2 erase函數(shù)—清除string中的 字符 432
22.4.3 replace函數(shù)—置換string中的 字符 433
22.4.4 swap函數(shù)—交換兩個(gè)字符串 的內(nèi)容 436
22.4.5 c_str函數(shù)—返回與string 等效的字符串 437
22.4.6 copy函數(shù)—取出string對(duì)象中 的指定字符 438
22.4.7 find函數(shù)—在string對(duì)象中 查找字符串 439
22.4.8 find_first_of函數(shù)和find_last_of 函數(shù)—在string中查找字符串 (部分匹配) 441
22.4.9 substr函數(shù)—生成string的 子串 442
22.4.10 stoi函數(shù)—將字符串中的 數(shù)字轉(zhuǎn)換為整數(shù) 444
第 23章 vector類 446
vector類是C++中常用的容器類,包括了一些常用的函數(shù)實(shí)現(xiàn),用戶無(wú)須重新編寫函數(shù)即可使用。例如,size 函數(shù)用來(lái)表示向量的大小,empty函數(shù)用來(lái)表示向量是否為空,push_back函數(shù)用來(lái)向向量中追加元素。
23.1 構(gòu)造類函數(shù) 446
23.1.1 vector的構(gòu)造函數(shù)和析構(gòu) 函數(shù)—?jiǎng)?chuàng)建vector對(duì)象和 釋放vector對(duì)象 446
23.1.2 operator=函數(shù)—拷貝vector中 的內(nèi)容 448
23.2 迭代器函數(shù) 449
23.2.1 begin函數(shù)和end函數(shù)—返回 第 一個(gè)元素和最后一個(gè)元素的后 一個(gè)位置 449
23.2.2 rbegin函數(shù)和rend函數(shù)—返回 與最后一個(gè)元素和第 一個(gè)元素 相關(guān)的迭代器 450
23.3 容量類函數(shù) 452
23.3.1 size函數(shù)、max_size函數(shù)和capacity 函數(shù)—返回元素的實(shí)際個(gè)數(shù)、 能容納的最大元素個(gè)數(shù)和分配的 存儲(chǔ)空間大小 452
23.3.2 empty函數(shù)—判斷vector是否 為空 453
23.3.3 resize函數(shù)—調(diào)整vector容器 的大小 455
23.3.4 reserve函數(shù)—重新為vector 容器分配內(nèi)存空間 456
23.4 存取類函數(shù) 457
23.4.1 operator[]函數(shù)—存取vector中 的元素 457
23.4.2 at函數(shù)—存取vector中的元素 (進(jìn)行越界檢查) 459
23.4.3 front函數(shù)和back函數(shù)—返回 vector中的第 一個(gè)元素和最后 一個(gè)元素 460
23.5 操作類函數(shù) 461
23.5.1 assign函數(shù)—為vector中的 元素賦值 462
23.5.2 push_back函數(shù)—在vector的 末尾追加新元素 463
23.5.3 pop_back函數(shù)—?jiǎng)h除vector中 的最后一個(gè)元素 464
23.5.4 insert函數(shù)—在vector中插入 元素 466
23.5.5 erase函數(shù)—?jiǎng)h除vector中指定 的元素 467
23.5.6 clear函數(shù)—清除vector中的 元素 469
23.5.7 swap函數(shù)—交換兩個(gè)vector 中的內(nèi)容 470
第 24章 deque類 472
deque類是C++的雙端隊(duì)列。它主要包括求隊(duì)列的大小函數(shù)、元素的存取函數(shù)、向隊(duì)列中插入元素和刪除元素的函數(shù)等。
24.1 構(gòu)造類函數(shù) 472
24.1.1 deque的構(gòu)造函數(shù)和析構(gòu) 函數(shù)—?jiǎng)?chuàng)建deque對(duì)象和 釋放deque對(duì)象 472
24.1.2 operator=函數(shù)—拷貝deque中 的內(nèi)容 474
24.2 迭代器函數(shù) 475
24.2.1 begin函數(shù)和end函數(shù)—返回 第 一個(gè)元素和最后一個(gè)元素的 后一個(gè)位置 476
24.2.2 rbegin函數(shù)和rend函數(shù)—返回 相對(duì)于begin函數(shù)和end函數(shù)的 反向迭代器 477
24.3 容量類函數(shù) 478
24.3.1 size函數(shù)和max_size函數(shù)— 返回元素的實(shí)際個(gè)數(shù)和能容納的 最大元素個(gè)數(shù) 478
24.3.2 empty函數(shù)—判斷deque是否 為空 480
24.3.3 resize函數(shù)—調(diào)整deque容器 的大小 481
24.4 存取類函數(shù) 483
24.4.1 operator[]函數(shù)—存取deque中 的元素 483
24.4.2 at函數(shù)—存取deque中的元素 (進(jìn)行越界檢查) 484
24.4.3 front函數(shù)和back函數(shù)—返回 deque中的第 一個(gè)元素和最后一 個(gè)元素 486
24.5 操作類函數(shù) 487
24.5.1 assign函數(shù)—為deque中的 元素賦值 487
24.5.2 push_back函數(shù)—在deque的 末尾追加新元素 489
24.5.3 push_front函數(shù)—在deque的 開(kāi)始位置插入新元素 490
24.5.4 pop_back函數(shù)—移除deque中 的最后一個(gè)元素 491
24.5.5 pop_front函數(shù)—移除deque中 的第 一個(gè)元素 492
24.5.6 insert函數(shù)—在deque的指定 位置插入元素 494
24.5.7 erase函數(shù)—?jiǎng)h除deque中指定 的元素 495
24.5.8 clear函數(shù)—清除deque中的 所有元素 497
24.5.9 swap函數(shù)—交換兩個(gè)deque中 的內(nèi)容 498
第 25章 list類 501
list類是C++的鏈表容器。它主要包括求鏈表的大小函數(shù)、元素的存取函數(shù)、鏈表的操作函數(shù)。例如,push_front函數(shù)在鏈表的開(kāi)始插入元素,push_back函數(shù)在鏈表的末尾插入元素,unique函數(shù)刪除鏈表中重復(fù)的元素。
25.1 構(gòu)造類函數(shù) 501
25.1.1 list的構(gòu)造函數(shù)和析構(gòu)函數(shù)— 創(chuàng)建list對(duì)象和釋放list 對(duì)象 501
25.1.2 operator=函數(shù)—拷貝list中的 內(nèi)容 503
25.2 迭代器函數(shù) 505
25.2.1 begin函數(shù)和end函數(shù)—返回 第 一個(gè)元素和最后一個(gè)元素的 后一個(gè)位置 505
25.2.2 rbegin函數(shù)和rend函數(shù)—返回 相對(duì)于begin函數(shù)和end函數(shù)的 反向迭代器 506
25.3 容量類函數(shù) 508
25.3.1 size函數(shù)和max_size函數(shù)— 返回元素的實(shí)際個(gè)數(shù)和能容納的 最大元素個(gè)數(shù) 508
25.3.2 empty函數(shù)—判斷l(xiāng)ist是否 為空 510
25.3.3 resize函數(shù)—調(diào)整list的 大小 511
25.4 存取類函數(shù) 513
25.4.1 front函數(shù)—返回list中的 第 一個(gè)元素 513
25.4.2 back函數(shù)—返回list中的 最后一個(gè)元素 514
25.5 操作類函數(shù) 515
25.5.1 assign函數(shù)—為list中的元素 賦值 515
25.5.2 push_back函數(shù)—在list的末尾 追加新元素 517
25.5.3 push_front函數(shù)—在list的 開(kāi)始位置插入新元素 518
25.5.4 pop_back函數(shù)—移除list 中的最后一個(gè)元素 519
25.5.5 pop_front函數(shù)—移除list中的 第 一個(gè)元素 520
25.5.6 insert函數(shù)—在list的指定位置 插入元素 522
25.5.7 erase函數(shù)—?jiǎng)h除list中指定的 元素 523
25.5.8 clear函數(shù)—清除list中的所有 元素 525
25.5.9 swap函數(shù)—交換兩個(gè)list中的 內(nèi)容 526
25.5.10 splice函數(shù)—將一個(gè)list 中的元素移動(dòng)到另一個(gè) list 528
25.5.11 remove函數(shù)—從list中移除 指定的元素 529
25.5.12 remove_if函數(shù)—?jiǎng)h除list中 不等于迭代器指向的函數(shù) 531
25.5.13 unique函數(shù)—?jiǎng)h除list中重復(fù) 的元素 532
25.5.14 merge函數(shù)—將兩個(gè)list鏈表 合并 534
25.5.15 sort函數(shù)—對(duì)list中的元素 排序 535
25.5.16 reverse函數(shù)—將list中的 元素逆置 537
第 26章 stack類 539
stack類是C++的棧容器。它主要包括求棧的大小函數(shù)和存取函數(shù)。例如,top函數(shù)返回棧頂元素,push函數(shù)在棧頂位置插入新元素,pop函數(shù)刪除棧頂元素。
26.1 構(gòu)造類函數(shù) 539
26.2 容量類函數(shù) 541
26.2.1 empty函數(shù)—判斷stack 是否為空 541
26.2.2 size函數(shù)—返回stack中的 元素個(gè)數(shù) 542
26.3 存取類函數(shù) 543
26.4 操作類函數(shù) 544
26.4.1 push函數(shù)—在stack的棧頂 位置插入新元素 544
26.4.2 pop函數(shù)—移除stack的棧 頂元素 546
第 27章 queue類 548
queue類是C++的隊(duì)列容器。它主要包括隊(duì)列的存取函數(shù)和一些判斷隊(duì)列的狀態(tài)函數(shù)。例如,front函數(shù)用來(lái)存取隊(duì)頭元素,back函數(shù)用來(lái)存取隊(duì)尾元素。
27.1 構(gòu)造類函數(shù) 548
27.2 容量類函數(shù) 550
27.2.1 empty函數(shù)—判斷queue 是否為空 550
27.2.2 size函數(shù)—返回queue的 大小 551
27.3 存取類函數(shù) 552
27.3.1 front函數(shù)—返回queue的 隊(duì)頭元素 552
27.3.2 back函數(shù)—返回queue的 隊(duì)尾元素 553
27.4 操作類函數(shù) 554
27.4.1 push函數(shù)—在queue隊(duì)尾 插入新元素 554
27.4.2 pop函數(shù)—移除queue的 隊(duì)頭元素 556
第 28章 set類 558
set類是C++的集合容器。它主要包括求集合的大小函數(shù)和其他操作函數(shù)。例如,find函數(shù)返回要查找元素的迭代器,lower_bound函數(shù)返回大于等于某個(gè)值的第 一個(gè)元素的迭代器。
28.1 構(gòu)造類函數(shù) 558
28.2 迭代器類函數(shù) 560
28.2.1 begin函數(shù)和end函數(shù)—返回 set的第 一個(gè)元素和最后一個(gè)元 素的迭代器 560
28.2.2 rbegin函數(shù)和rend函數(shù)—返回 set中的最后一個(gè)元素和第 一個(gè) 元素的反向迭代器 562
28.3 容量類函數(shù) 563
28.3.1 empty函數(shù)—判斷set是否 為空 563
28.3.2 size函數(shù)—返回set的 大小 564
28.3.3 max_size函數(shù)—返回set能 容納的最大元素個(gè)數(shù) 565
28.4 操作類函數(shù) 567
28.4.1 insert函數(shù)—在set中插入新 元素 567
28.4.2 swap函數(shù)—交換兩個(gè)set中的 內(nèi)容 568
28.4.3 erase函數(shù)—清除set中的 元素 570
28.4.4 clear函數(shù)—清空set中的 元素 572
28.4.5 find函數(shù)—查找set中的 元素 573
28.4.6 count函數(shù)—統(tǒng)計(jì)set中某一個(gè) 元素的個(gè)數(shù) 574
28.4.7 lower_bound函數(shù)和upper_bound 函數(shù)—返回set中元素下界和 上界的迭代器 576
28.4.8 equal_range函數(shù)—返回set中 元素x的下限和上限 577
第 29章 map類 579
map 類是 C++的映射容器。它主要包括求map容器大小的函數(shù)、元素的存取函數(shù)和查找操作函數(shù)。例如,insert函數(shù)是插入一個(gè)元素到map中,erase函數(shù)是清除map中的元素。
29.1 構(gòu)造類函數(shù) 580
29.1.1 map的構(gòu)造函數(shù)和析構(gòu)函數(shù)— 創(chuàng)建map對(duì)象和釋放map 對(duì)象 580
29.1.2 map的賦值構(gòu)造函數(shù)—通過(guò)一 個(gè)map對(duì)象為另一個(gè)map對(duì)象 賦值 581
29.2 迭代器類函數(shù) 583
29.2.1 begin函數(shù)和end函數(shù)—返回 第 一個(gè)元素的位置和最后一個(gè) 元素的后一個(gè)位置 583
29.2.2 rbegin函數(shù)和rend函數(shù)—返回 指向map中最后一個(gè)元素的反 向迭代器和第 一個(gè)元素之 前的反向迭代器 584
29.3 容量類函數(shù) 585
29.3.1 empty函數(shù)—判斷map是否 為空 585
29.3.2 size函數(shù)—返回map容器中的 元素個(gè)數(shù) 587
29.3.3 max_size函數(shù)—返回map容器 能容納的最大元素個(gè)數(shù) 588
29.4 存取類函數(shù) 589
29.5 操作類函數(shù) 590
29.5.1 insert函數(shù)—在map中插入 新元素 590
29.5.2 erase函數(shù)—移除map中的 元素 592
29.5.3 swap函數(shù)—交換兩個(gè)map中 的內(nèi)容 594
29.5.4 clear函數(shù)—清除map中的 所有元素 595
29.5.5 count函數(shù)—統(tǒng)計(jì)map中某個(gè) 元素關(guān)鍵字的個(gè)數(shù) 596
29.5.6 find函數(shù)—查找map中的 元素 598

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)