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

21天學(xué)通C++(第9版)

21天學(xué)通C++(第9版)

定 價(jià):¥119.80

作 者: [美]悉達(dá)多·饒(Siddhartha Rao)
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115616838 出版時(shí)間: 2023-08-01 包裝: 平裝-膠訂
開本: 128開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  這是一本經(jīng)典的C編程入門指南,第9版針對(duì)C20標(biāo)準(zhǔn)進(jìn)行了內(nèi)容上的全面更新,旨在幫助讀者編寫更快、更簡單、更可靠的C代碼,并掌握C和面向?qū)ο缶幊痰幕驹?。本書通過大量短小精悍的程序詳細(xì)而全面地闡述了C的基本概念和技術(shù)應(yīng)用,以及C20新增的功能,這些內(nèi)容被組織成結(jié)構(gòu)合理、聯(lián)系緊密的章節(jié)。每章都提供了示例程序清單,并輔以示例輸出和代碼分析,以進(jìn)一步闡述該章的主題。為幫助讀者鞏固所學(xué)的內(nèi)容,每章末尾都提供了常見問題相關(guān)答案以及作業(yè)。讀者可對(duì)照附錄E提供的答案,了解自己對(duì)所學(xué)內(nèi)容的掌握程度。本書面向C初學(xué)者,不要求讀者有C語言方面的背景知識(shí),可作為高等院校教授C課程的教材,也可供初學(xué)者自學(xué)C時(shí)使用。

作者簡介

  悉達(dá)多·饒(Siddhartha Rao)是SAP SE公司主管產(chǎn)品安全的副總裁,其作品享譽(yù)全球,并被翻譯成法語和中文。他深信C發(fā)展快速,并致力于為機(jī)器學(xué)習(xí)和人工智能領(lǐng)域的發(fā)展添磚加瓦。

圖書目錄

第 一部分 基礎(chǔ)知識(shí)
第 1章 緒論 2
1.1 C 簡史 2
1.1.1 與C語言的關(guān)系 2
1.1.2 C 的優(yōu)點(diǎn) 2
1.1.3 C 標(biāo)準(zhǔn)的發(fā)展歷程 3
1.1.4 哪些人使用C 程序 3
1.2 編寫C 應(yīng)用程序 3
1.2.1 生成可執(zhí)行文件的步驟 3
1.2.2 分析并修復(fù)錯(cuò)誤 4
1.2.3 集成開發(fā)環(huán)境 4
1.2.4 編寫第 一個(gè)C 應(yīng)用程序 4
1.2.5 生成并執(zhí)行第 一個(gè)C 應(yīng)用程序 5
1.2.6 理解編譯錯(cuò)誤 7
1.3 C 20新增的功能 7
1.4 總結(jié) 8
1.5 問與答 8
1.6 作業(yè) 8
1.6.1 測(cè)驗(yàn) 8
1.6.2 練習(xí) 9
第 2章 C 程序的組成部分 10
2.1 Hello World程序的組成部分 10
2.1.1 預(yù)處理器編譯指令#include 10
2.1.2 程序的主體:main( ) 11
2.1.3 返回值 12
2.2 命名空間的概念 12
2.3 C 代碼中的注釋 13
2.4 C 函數(shù) 14
2.5 使用std::cin和std::cout執(zhí)行基本輸入輸出操作 16
2.6 總結(jié) 17
2.7 問與答 17
2.8 作業(yè) 17
2.8.1 測(cè)驗(yàn) 18
2.8.2 練習(xí) 18
第3章 使用變量和常量 19
3.1 什么是變量 19
3.1.1 內(nèi)存和尋址概述 19
3.1.2 聲明變量以訪問和使用內(nèi)存 19
3.1.3 聲明并初始化多個(gè)類型相同的變量 21
3.1.4 理解變量的作用域 21
3.1.5 全局變量 22
3.1.6 命名約定 24
3.2 編譯器支持的常見C 變量類型 24
3.2.1 使用bool變量存儲(chǔ)布爾值 25
3.2.2 使用char變量存儲(chǔ)字符 25
3.2.3 有符號(hào)整數(shù)和無符號(hào)整數(shù)的概念 26
3.2.4 有符號(hào)整型short、int、long和long long 26
3.2.5 無符號(hào)整型unsigned short、unsigned int、unsigned long和unsigned long long 26
3.2.6 選擇正確的數(shù)據(jù)類型以免發(fā)生溢出錯(cuò)誤 27
3.2.7 浮點(diǎn)類型float和double 28
3.3 使用sizeof確定變量的長度 28
3.4 使用auto自動(dòng)推斷類型 30
3.5 使用typedef替換變量類型 31
3.6 什么是常量 31
3.6.1 字面常量 32
3.6.2 使用const將變量聲明為常量 32
3.6.3 使用constexpr定義常量表達(dá)式 33
3.6.4 使用consteval定義C 20即時(shí)函數(shù) 34
3.6.5 枚舉 35
3.6.6 域限定枚舉 37
3.6.7 使用#define定義常量 37
3.7 不能用作常量或變量名的關(guān)鍵字 37
3.8 總結(jié) 38
3.9 問與答 38
3.10 作業(yè) 39
3.10.1 測(cè)驗(yàn) 39
3.10.2 練習(xí) 40
第4章 管理數(shù)組和字符串 41
4.1 什么是數(shù)組 41
4.1.1 為何需要數(shù)組 41
4.1.2 聲明和初始化靜態(tài)數(shù)組 42
4.1.3 數(shù)組中的數(shù)據(jù)是如何存儲(chǔ)的 42
4.1.4 訪問存儲(chǔ)在數(shù)組中的數(shù)據(jù) 43
4.1.5 修改存儲(chǔ)在數(shù)組中的數(shù)據(jù) 44
4.2 多維數(shù)組 46
4.2.1 聲明和初始化多維數(shù)組 46
4.2.2 訪問多維數(shù)組中的元素 47
4.3 動(dòng)態(tài)數(shù)組 48
4.4 C風(fēng)格字符串 49
4.5 C 字符串:使用std::string 51
4.6 總結(jié) 52
4.7 問與答 53
4.8 作業(yè) 53
4.8.1 測(cè)驗(yàn) 53
4.8.2 練習(xí) 53
第5章 使用表達(dá)式、語句和運(yùn)算符 54
5.1 語句 54
5.2 復(fù)合語句(語句塊) 55
5.3 使用運(yùn)算符 55
5.3.1 賦值運(yùn)算符(=) 55
5.3.2 理解左值和右值 55
5.3.3 加法運(yùn)算符( )、減法運(yùn)算符( )、乘法運(yùn)算符(*)、除法運(yùn)算符(/)和求模運(yùn)算符(%) 55
5.3.4 遞增運(yùn)算符( )和遞減運(yùn)算符( ) 56
5.3.5 使用前綴還是后綴 57
5.3.6 相等運(yùn)算符(==)和不等運(yùn)算符(!=) 58
5.3.7 關(guān)系運(yùn)算符 58
5.3.8 C 20三向比較運(yùn)算符 60
5.3.9 邏輯運(yùn)算NOT、AND、OR和XOR 62
5.3.10 使用C 邏輯運(yùn)算符!、 &&和|| 63
5.3.11 按位運(yùn)算符~、&、|和^ 66
5.3.12 按位右移運(yùn)算符(>>)和左移 運(yùn)算符(<>
5.3.13 復(fù)合賦值運(yùn)算符 68
5.3.14 使用運(yùn)算符sizeof( )確定特定類型 變量占用的內(nèi)存量 70
5.3.15 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 71
5.4 總結(jié) 72
5.5 問與答 72
5.6 作業(yè) 73
5.6.1 測(cè)驗(yàn) 73
5.6.2 練習(xí) 73
第6章 控制程序流程 74
6.1 使用if...else有條件地執(zhí)行 74
6.1.1 使用if…else進(jìn)行條件編程 75
6.1.2 有條件地執(zhí)行語句塊 76
6.1.3 嵌套if語句 78
6.1.4 使用switch-case進(jìn)行條件處理 81
6.1.5 使用運(yùn)算符 :進(jìn)行條件處理 83
6.2 在循環(huán)中執(zhí)行代碼 84
6.2.1 不成熟的goto循環(huán) 85
6.2.2 while循環(huán) 86
6.2.3 do…while循環(huán) 88
6.2.4 for循環(huán) 89
6.2.5 基于范圍的for循環(huán) 91
6.3 使用continue和break修改循環(huán)的行為 93
6.3.1 不結(jié)束的循環(huán)——無限循環(huán) 93
6.3.2 控制無限循環(huán) 94
6.4 編寫嵌套循環(huán) 96
6.4.1 使用嵌套循環(huán)遍歷多維數(shù)組 97
6.4.2 使用嵌套循環(huán)計(jì)算斐波那契數(shù)列 98
6.5 總結(jié) 99
6.6 問與答 100
6.7 作業(yè) 100
6.7.1 測(cè)驗(yàn) 100
6.7.2 練習(xí) 100
第7章 使用函數(shù)組織代碼 102
7.1 為何需要函數(shù) 102
7.1.1 函數(shù)原型是什么 103
7.1.2 函數(shù)定義是什么 104
7.1.3 函數(shù)調(diào)用和實(shí)參是什么 104
7.1.4 編寫接收多個(gè)參數(shù)的函數(shù) 104
7.1.5 編寫沒有參數(shù)和返回值的函數(shù) 105
7.1.6 帶默認(rèn)值的函數(shù)參數(shù) 106
7.1.7 遞歸函數(shù)——調(diào)用自己的函數(shù) 108
7.1.8 包含多條return語句的函數(shù) 109
7.2 使用函數(shù)處理不同類型的數(shù)據(jù) 110
7.2.1 函數(shù)重載 110
7.2.2 將數(shù)組傳遞給函數(shù) 112
7.2.3 按引用傳遞參數(shù) 113
7.3 微處理器如何處理函數(shù)調(diào)用 114
7.3.1 內(nèi)聯(lián)函數(shù) 115
7.3.2 自動(dòng)推斷返回類型 116
7.3.3 lambda函數(shù) 117
7.4 總結(jié) 118
7.5 問與答 118
7.6 作業(yè) 119
7.6.1 測(cè)驗(yàn) 119
7.6.2 練習(xí) 119
第8章 闡述指針和引用 121
8.1 什么是指針 121
8.1.1 聲明指針 122
8.1.2 使用引用運(yùn)算符(&)獲取變量的地址 122
8.1.3 使用指針存儲(chǔ)地址 123
8.1.4 使用解除引用運(yùn)算符(*)訪問指向的數(shù)據(jù) 124
8.1.5 指針占用的內(nèi)存量 126
8.2 動(dòng)態(tài)內(nèi)存分配 127
8.2.1 使用new和delete動(dòng)態(tài)地分配和釋放內(nèi)存 128
8.2.2 將遞增和遞減運(yùn)算符( 和 )用于指針的結(jié)果 130
8.2.3 將關(guān)鍵字const用于指針 132
8.2.4 將指針傳遞給函數(shù) 133
8.2.5 數(shù)組和指針的類似之處 134
8.3 使用指針時(shí)常犯的編程錯(cuò)誤 136
8.3.1 內(nèi)存泄漏 136
8.3.2 指針指向無效的內(nèi)存單元 136
8.3.3 懸浮指針(也叫迷途或失控指針) 137
8.3.4 檢查使用new發(fā)出的分配請(qǐng)求是否得到滿足 138
8.4 指針編程最佳實(shí)踐 140
8.5 引用是什么 140
8.5.1 是什么讓引用很有用 141
8.5.2 將關(guān)鍵字const用于引用 143
8.5.3 按引用向函數(shù)傳遞參數(shù) 143
8.6 總結(jié) 144
8.7 問與答 144
8.8 作業(yè) 145
8.8.1 測(cè)驗(yàn) 145
8.8.2 練習(xí) 145
第二部分 C 面向?qū)ο缶幊袒A(chǔ)
第9章 類和對(duì)象 148
9.1 類和對(duì)象 148
9.1.1 聲明類 148
9.1.2 作為類實(shí)例的對(duì)象 149
9.1.3 使用句點(diǎn)運(yùn)算符(.)訪問成員 149
9.1.4 使用指針運(yùn)算符(->)訪問成員 150
9.2 關(guān)鍵字public和private 151
9.3 構(gòu)造函數(shù) 154
9.3.1 聲明和實(shí)現(xiàn)構(gòu)造函數(shù) 154
9.3.2 何時(shí)及如何使用構(gòu)造函數(shù) 155
9.3.3 重載構(gòu)造函數(shù) 156
9.3.4 沒有默認(rèn)構(gòu)造函數(shù)的類 157
9.3.5 帶默認(rèn)值的構(gòu)造函數(shù)參數(shù) 158
9.3.6 包含初始化列表的構(gòu)造函數(shù) 159
9.4 析構(gòu)函數(shù) 161
9.4.1 聲明和實(shí)現(xiàn)析構(gòu)函數(shù) 161
9.4.2 何時(shí)及如何使用析構(gòu)函數(shù) 162
9.5 復(fù)制構(gòu)造函數(shù) 163
9.5.1 淺復(fù)制及其存在的問題 164
9.5.2 使用復(fù)制構(gòu)造函數(shù)確保深復(fù)制 166
9.5.3 使用移動(dòng)構(gòu)造函數(shù)改善性能 169
9.6 構(gòu)造函數(shù)和析構(gòu)函數(shù)的其他用途 170
9.6.1 不允許復(fù)制的類 170
9.6.2 只能有一個(gè)實(shí)例的單例類 170
9.6.3 禁止在棧中實(shí)例化的類 172
9.6.4 使用構(gòu)造函數(shù)進(jìn)行類型轉(zhuǎn)換 174
9.7 this指針 176
9.8 將sizeof( )用于類 176
9.9 結(jié)構(gòu)不同于類的地方 178
9.10 聲明友元 179
9.11 共用體:一種特殊的數(shù)據(jù)存儲(chǔ)機(jī)制 180
9.11.1 聲明共用體 180
9.11.2 在什么情況下使用共用體 181
9.12 對(duì)類和結(jié)構(gòu)使用聚合初始化 183
9.13 總結(jié) 186
9.14 問與答 186
9.15 作業(yè) 187
9.15.1 測(cè)驗(yàn) 187
9.15.2 練習(xí) 187
第 10章 實(shí)現(xiàn)繼承 188
10.1 繼承基礎(chǔ) 188
10.1.1 繼承和派生 189
10.1.2 C 派生語法 189
10.1.3 訪問限定符protected 191
10.1.4 基類初始化——向基類傳遞參數(shù) 193
10.1.5 在派生類中覆蓋基類的方法 195
10.1.6 調(diào)用基類中被覆蓋的方法 197
10.1.7 在派生類中調(diào)用基類的方法 197
10.1.8 在派生類中隱藏基類的方法 199
10.1.9 構(gòu)造順序 201
10.1.10 析構(gòu)順序 201
10.2 私有繼承 203
10.3 保護(hù)繼承 205
10.4 切除問題 207
10.5 多繼承 208
10.6 使用final禁止繼承 210
10.7 總結(jié) 210
10.8 問與答 211
10.9 作業(yè) 211
10.9.1 測(cè)驗(yàn) 211
10.9.2 練習(xí) 211
第 11章 多態(tài) 213
11.1 多態(tài)基礎(chǔ) 213
11.1.1 為何需要多態(tài)行為 213
11.1.2 使用虛函數(shù)實(shí)現(xiàn)多態(tài)行為 214
11.1.3 為何需要虛構(gòu)造函數(shù) 216
11.1.4 虛函數(shù)的工作原理——理解虛函數(shù)表 219
11.1.5 抽象基類和純虛函數(shù) 222
11.2 使用虛繼承解決菱形問題 224
11.3 使用限定符override明確覆蓋意圖 227
11.4 使用final來禁止覆蓋函數(shù) 228
11.5 可將復(fù)制構(gòu)造函數(shù)聲明為虛函數(shù)嗎 229
11.6 總結(jié) 232
11.7 問與答 232
11.8 作業(yè) 233
11.8.1 測(cè)驗(yàn) 233
11.8.2 練習(xí) 233
第 12章 運(yùn)算符類型與運(yùn)算符重載 234
12.1 C 運(yùn)算符 234
12.2 單目運(yùn)算符 235
12.2.1 單目運(yùn)算符的類型 235
12.2.2 單目遞增與單目遞減運(yùn)算符 235
12.2.3 轉(zhuǎn)換運(yùn)算符 238
12.2.4 解除引用運(yùn)算符(*)和成員選擇 運(yùn)算符(->) 240
12.3 雙目運(yùn)算符 241
12.3.1 雙目運(yùn)算符的類型 242
12.3.2 雙目加法與雙目減法運(yùn)算符 242
12.3.3 實(shí)現(xiàn)運(yùn)算符 =與 = 244
12.3.4 重載相等運(yùn)算符(==)和不等 運(yùn)算符(!=) 245
12.3.5 重載運(yùn)算符、= 247
12.3.6 C 20三向比較運(yùn)算符 () 250
12.3.7 重載復(fù)制賦值運(yùn)算符(=) 252
12.3.8 索引運(yùn)算符 255
12.4 函數(shù)運(yùn)算符( ) 257
12.5 用于高性能編程的移動(dòng)構(gòu)造函數(shù)和 移動(dòng)賦值運(yùn)算符 258
12.5.1 不必要的復(fù)制帶來的問題 258
12.5.2 聲明移動(dòng)構(gòu)造函數(shù)和移動(dòng)賦值 運(yùn)算符 258
12.6 用戶定義的字面量 263
12.7 不能重載的運(yùn)算符 265
12.8 總結(jié) 265
12.9 問與答 265
12.10 作業(yè) 266
12.10.1 測(cè)驗(yàn) 266
12.10.2 練習(xí) 266
第 13章 類型轉(zhuǎn)換運(yùn)算符 267
13.1 為何需要類型轉(zhuǎn)換 267
13.2 為何有些C 程序員不喜歡C風(fēng)格 類型轉(zhuǎn)換 268
13.3 C 類型轉(zhuǎn)換運(yùn)算符 268
13.3.1 使用static_cast 268
13.3.2 使用dynamic_cast和運(yùn)行階段類型識(shí)別 269
13.3.3 使用reinterpret_cast 272
13.3.4 使用const_cast 272
13.4 C 類型轉(zhuǎn)換運(yùn)算符存在的問題 273
13.5 總結(jié) 274
13.6 問與答 274
13.7 作業(yè) 275
13.7.1 測(cè)驗(yàn) 275
13.7.2 練習(xí) 275
第 14章 宏和模板簡介 276
14.1 預(yù)處理器與編譯器 276
14.2 使用#define定義常量 276
14.3 使用#define編寫宏函數(shù) 279
14.3.1 為什么要使用括號(hào) 280
14.3.2 使用assert宏驗(yàn)證表達(dá)式 281
14.3.3 使用宏函數(shù)的優(yōu)點(diǎn)和缺點(diǎn) 282
14.4 模板簡介 283
14.4.1 模板聲明語法 283
14.4.2 各種類型的模板聲明 283
14.4.3 模板函數(shù) 284
14.4.4 模板與類型安全 285
14.4.5 模板類 286
14.4.6 聲明包含多個(gè)參數(shù)的模板 286
14.4.7 聲明包含默認(rèn)參數(shù)的模板 287
14.4.8 一個(gè)模板類示例:HoldsPair 287
14.4.9 模板的實(shí)例化和具體化 289
14.4.10 模板類和靜態(tài)成員 290
14.4.11 參數(shù)數(shù)量可變的模板 291
14.4.12 使用static_assert執(zhí)行編譯階段 檢查 294
14.4.13 在實(shí)際C 編程中使用模板 295
14.5 總結(jié) 295
14.6 問與答 296
14.7 作業(yè) 296
14.7.1 測(cè)驗(yàn) 296
14.7.2 練習(xí) 296
第三部分 學(xué)習(xí)標(biāo)準(zhǔn)模板庫
第 15章 標(biāo)準(zhǔn)模板庫簡介 298
15.1 STL容器 298
15.1.1 順序容器 298
15.1.2 關(guān)聯(lián)容器 299
15.1.3 容器適配器 299
15.2 STL迭代器 300
15.3 STL算法 300
15.4 使用迭代器在容器和算法之間交互 300
15.5 選擇正確的容器 302
15.6 STL字符串類 303
15.7 總結(jié) 303
15.8 問與答 303
15.9 作業(yè) 304
第 16章 STL string類 305
16.1 為何需要字符串操作類 305
16.2 使用STL string類 306
16.2.1 實(shí)例化和復(fù)制STL string 306
16.2.2 訪問std::string的字符內(nèi)容 308
16.2.3 拼接字符串 310
16.2.4 在string中查找字符或子 字符串 311
16.2.5 截短STL string 312
16.2.6 字符串反轉(zhuǎn) 314
16.2.7 字符串的大小寫轉(zhuǎn)換 315
16.3 基于模板的STL string實(shí)現(xiàn) 316
16.4 std::string中的operator ""s 316
16.5 使用C 20改進(jìn)了的
std::string_view 317
16.6 總結(jié) 318
16.7 問與答 319
16.8 作業(yè) 319
16.8.1 測(cè)驗(yàn) 319
16.8.2 練習(xí) 319
第 17章 STL動(dòng)態(tài)數(shù)組類 320
17.1 std::vector的特點(diǎn) 320
17.2 典型的vector操作 320
17.2.1 實(shí)例化vector 320
17.2.2 使用push_back( )在vector末尾 插入元素 322
17.2.3 列表初始化 322
17.2.4 使用insert( )在指定位置 插入元素 323
17.2.5 使用數(shù)組語法訪問vector中的 元素 325
17.2.6 使用指針語法訪問vector中的 元素 326
17.2.7 刪除vector中的元素 327
17.3 理解大小和容量 328
17.4 STL deque 類 329
17.5 總結(jié) 332
17.6 問與答 332
17.7 作業(yè) 333
17.7.1 測(cè)驗(yàn) 333
17.7.2 練習(xí) 333
第 18章 STL list和forward_list 334
18.1 std::list的特點(diǎn) 334
18.2 基本的list操作 334
18.2.1 實(shí)例化std::list對(duì)象 334
18.2.2 在list開頭或末尾插入元素 336
18.2.3 在list中間插入元素 337
18.2.4 刪除list中的元素 339
18.3 對(duì)list中的元素進(jìn)行反轉(zhuǎn)和排序 340
18.3.1 使用list::reverse( )反轉(zhuǎn)元素的 排列順序 340
18.3.2 對(duì)元素進(jìn)行排序 341
18.3.3 對(duì)包含對(duì)象的list進(jìn)行排序以及 刪除其中的元素 343
18.3.4 std::forward_list 345
18.4 總結(jié) 347
18.5 問與答 347
18.6 作業(yè) 348
18.6.1 測(cè)驗(yàn) 348
18.6.2 練習(xí) 348
第 19章 STL set和multiset 349
19.1 簡介 349
19.2 STL set和multiset的基本操作 349
19.2.1 實(shí)例化std::set對(duì)象 350
19.2.2 在set或multiset中插入 元素 351
19.2.3 在STL set或multiset中查找 元素 353
19.2.4 刪除STL set或multiset中的 元素 354
19.3 使用STL set和multiset的優(yōu)缺點(diǎn) 358
19.4 總結(jié) 360
19.5 問與答 361
19.6 作業(yè) 361
19.6.1 測(cè)驗(yàn) 361
19.6.2 練習(xí) 361
第 20章 STL map和multimap 362
20.1 STL映射類簡介 362
20.2 STL map和multimap的基本操作 363
20.2.1 實(shí)例化std::map和 std::multimap 363
20.2.2 在STL map或multimap中 插入元素 364
20.2.3 在STL map中查找元素 366
20.2.4 在STL multimap中查找元素 368
20.2.5 刪除STL map或multimap中的 元素 369
20.3 提供自定義的排序謂詞 371
20.4 基于鍵值對(duì)的STL散列表容器 374
20.4.1 散列表的工作原理 374
20.4.2 使用unordered_map和 unordered_multimap 374
20.5 總結(jié) 377
20.6 問與答 378
20.7 作業(yè) 378
20.7.1 測(cè)驗(yàn) 378
20.7.2 練習(xí) 379
第四部分 lambda表達(dá)式和STL算法
第 21章 理解函數(shù)對(duì)象 382
21.1 函數(shù)對(duì)象與謂詞的概念 382
21.2 函數(shù)對(duì)象的典型用途 382
21.2.1 一元函數(shù) 382
21.2.2 一元謂詞 386
21.2.3 二元函數(shù) 387
21.2.4 二元謂詞 389
21.3 總結(jié) 391
21.4 問與答 392
21.5 作業(yè) 392
21.5.1 測(cè)驗(yàn) 392
21.5.2 練習(xí) 392
第 22章 lambda表達(dá)式 393
22.1 lambda表達(dá)式是什么 393
22.2 如何定義lambda表達(dá)式 394
22.2.1 捕獲變量 394
22.2.2 參數(shù) 394
22.2.3 返回類型 395
22.3 一元函數(shù)對(duì)應(yīng)的lambda表達(dá)式 395
22.4 一元謂詞對(duì)應(yīng)的lambda表達(dá)式 396
22.5 通過捕獲列表接收狀態(tài)的lambda 表達(dá)式 397
22.6 二元函數(shù)對(duì)應(yīng)的lambda表達(dá)式 399
22.7 二元謂詞對(duì)應(yīng)的lambda表達(dá)式 400
22.8 總結(jié) 402
22.9 問與答 402
22.10 作業(yè) 402
22.10.1 測(cè)驗(yàn) 403
22.10.2 練習(xí) 403
第 23章 STL算法 404
23.1 什么是STL算法 404
23.2 STL算法的分類 404
23.2.1 非變序算法 404
23.2.2 變序算法 405
23.3 使用STL算法 406
23.3.1 根據(jù)值或條件查找元素 406
23.3.2 計(jì)算包含給定值或滿足給定條件的元素?cái)?shù) 408
23.3.3 在集合中搜索元素或序列 409
23.3.4 將容器中的元素初始化為 指定值 411
23.3.5 使用std::generate( )將元素設(shè)置為運(yùn)行階段生成的值 412
23.3.6 使用for_each( )處理指定范圍內(nèi)的元素 414
23.3.7 使用std::transform( )對(duì)范圍進(jìn)行變換 415
23.3.8 復(fù)制和刪除操作 417
23.3.9 替換值以及替換滿足給定條件的元素 420
23.3.10 對(duì)集合進(jìn)行排序以及在有序集合中搜索和刪除重復(fù)元素 421
23.3.11 將范圍分區(qū) 423
23.3.12 在有序集合中插入元素 424
23.3.13 使用C 20引入的std:: accumulate( )執(zhí)行累積操作 426
23.4 C 20約束算法 426
23.5 總結(jié) 428
23.6 問與答 428
23.7 作業(yè) 429
23.7.1 測(cè)驗(yàn) 429
23.7.2 練習(xí) 429
第 24章 自適應(yīng)容器:棧和隊(duì)列 430
24.1 棧和隊(duì)列的行為特征 430
24.1.1 ?!?30
24.1.2 隊(duì)列 431
24.2 使用STL stack類 431
24.2.1 實(shí)例化stack 431
24.2.2 stack的成員函數(shù) 432
24.2.3 使用push( )和pop( )在棧頂插入和刪除元素 433
24.3 使用STL queue類 434
24.3.1 實(shí)例化queue 434
24.3.2 queue的成員函數(shù) 435
24.3.3 使用push( )在隊(duì)尾插入以及使用pop( )從隊(duì)首刪除 436
24.4 使用STL優(yōu)先級(jí)隊(duì)列 437
24.4.1 實(shí)例化priority_queue類 437
24.4.2 priority_queue的成員函數(shù) 438
24.4.3 使用push( )在priority_queue末尾插入以及使用pop( )在priority_queue開頭刪除 439
24.5 總結(jié) 441
24.6 問與答 441
24.7 作業(yè) 441
24.7.1 測(cè)驗(yàn) 441
24.7.2 練習(xí) 441
第 25章 使用STL位標(biāo)志 442
25.1 bitset類 442
25.2 使用std::bitset及其成員 443
25.2.1 std::bitset中很有用的運(yùn)算符 443
25.2.2 std::bitset的成員方法 444
25.3 vector 446
25.3.1 實(shí)例化vector 446
25.3.2 vector的成員函數(shù)和運(yùn)算符 447
25.4 總結(jié) 448
25.5 問與答 448
25.6 作業(yè) 448
25.6.1 測(cè)驗(yàn) 449
25.6.2 練習(xí) 449
第五部分 C 進(jìn)階概念
第 26章 理解智能指針 452
26.1 什么是智能指針 452
26.1.1 常規(guī)(原始)指針存在的問題 452
26.1.2 智能指針有何幫助 453
26.2 智能指針是如何實(shí)現(xiàn)的 453
26.3 智能指針類型 454
26.3.1 深復(fù)制 454
26.3.2 寫時(shí)拷貝機(jī)制 456
26.3.3 引用計(jì)數(shù)智能指針 456
26.3.4 引用鏈接智能指針 456
26.3.5 破壞性復(fù)制 457
26.3.6 使用std::unique_ptr 458
26.4 深受歡迎的智能指針庫 460
26.5 總結(jié) 460
26.6 問與答 461
26.7 作業(yè) 461
26.7.1 測(cè)試 461
26.7.2 練習(xí) 461
第 27章 使用流進(jìn)行輸入和輸出 462
27.1 流的概述 462
27.2 重要的C 流類和流對(duì)象 463
27.3 使用std::cout將指定格式的數(shù)據(jù)寫入控制臺(tái) 464
27.3.1 使用std::cout修改數(shù)字的顯示格式 464
27.3.2 使用std::cout對(duì)齊文本和設(shè)置字段寬度 466
27.4 使用std::cin進(jìn)行輸入 466
27.4.1 使用std::cin將輸入讀取到基本類型變量中 466
27.4.2 使用std::cin:get將輸入讀取到char* 緩沖區(qū)中 467
27.4.3 使用std::cin將輸入讀取到std::string中 468
27.5 使用std::fstream處理文件 469
27.5.1 使用open( )和close( )打開和關(guān)閉文件 470
27.5.2 使用open( )創(chuàng)建文本文件并使用運(yùn)算符<>
27.5.3 使用open( )和運(yùn)算符>>讀取文本文件 471
27.5.4 讀寫二進(jìn)制文件 472
27.6 使用std::stringstream對(duì)字符串進(jìn)行轉(zhuǎn)換 474
27.7 總結(jié) 475
27.8 問與答 475
27.9 作業(yè) 476
27.9.1 測(cè)驗(yàn) 476
27.9.2 練習(xí) 476
第 28章 異常處理 477
28.1 什么是異?!?77
28.2 導(dǎo)致異常的因素 477
28.3 使用try和catch捕獲異?!?77
28.3.1 使用catch(…)處理所有異常 478
28.3.2 捕獲特定類型的異?!?79
28.3.3 使用throw引發(fā)特定類型的異?!?80
28.4 異常處理的工作原理 481
28.4.1 std::exception類 483
28.4.2 從std::exception派生出自定義異常類 483
28.5 總結(jié) 485
28.6 問與答 485
28.7 作業(yè) 486
28.7.1 測(cè)驗(yàn) 486
28.7.2 練習(xí) 486
第 29章 C 20概念、范圍、視圖和適配器 488
29.1 概念 488
29.1.1 使用標(biāo)準(zhǔn)庫提供的概念 489
29.1.2 使用關(guān)鍵字requires定義自定義概念 490
29.1.3 將概念用于類和對(duì)象 492
29.2 范圍庫、視圖和適配器 494
29.2.1 視圖和適配器 495
29.2.2 范圍庫提供的適配器 496
29.2.3 合并多個(gè)適配器 498
29.3 總結(jié) 499
29.4 問與答 499
29.5 作業(yè) 499
29.5.1 測(cè)驗(yàn) 499
29.5.2 練習(xí) 500
第30章 C 20線程 501
30.1 多線程技術(shù) 501
30.1.1 何謂線程 501
30.1.2 為何要編寫多線程應(yīng)用程序 501
30.1.3 使用C 20線程庫 502
30.1.4 線程如何交換數(shù)據(jù) 504
30.1.5 使用互斥量和信號(hào)量同步線程 504
30.2 總結(jié) 504
30.3 問與答 505
30.4 作業(yè) 505
第31章 C 20模塊和C 23 506
31.1 模塊 506
31.1.1 #include 存在的問題 506
31.1.2 C 20模塊 506
31.1.3 創(chuàng)建模塊 507
31.1.4 使用模塊 508
31.1.5 為何導(dǎo)入模塊優(yōu)于預(yù)處理器編譯指令#include 508
31.2 C 23有望引入的特性 509
31.3 更深入地學(xué)習(xí)C  509
31.3.1 在線文檔 509
31.3.2 提供指南和幫助的社區(qū) 509
31.4 總結(jié) 509
31.5 問與答 510
31.6 作業(yè) 510
附錄A 二進(jìn)制和十六進(jìn)制 511
A.1 十進(jìn)制 511
A.2 二進(jìn)制 511
A.2.1 計(jì)算機(jī)為何使用二進(jìn)制 512
A.2.2 位和字節(jié) 512
A.2.3 1KB相當(dāng)于多少字節(jié) 512
A.3 十六進(jìn)制 512
A.4 不同進(jìn)制之間的轉(zhuǎn)換 513
A.4.1 通用的轉(zhuǎn)換步驟 513
A.4.2 從十進(jìn)制轉(zhuǎn)換為二進(jìn)制 513
A.4.3 從十進(jìn)制轉(zhuǎn)換為十六進(jìn)制 514
附錄B C 關(guān)鍵字 515
附錄C 編寫杰出的C 代碼 516
附錄D ASCII 517
附錄E 答案 520

本目錄推薦

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