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

學(xué)習(xí)C++20(中文版)

學(xué)習(xí)C++20(中文版)

定 價(jià):¥238.00

作 者: [美]保羅·J.戴特爾(Paul J. Deitel),[美] 哈維·M.戴特爾(Harvey M. Deitel)著,周靖 譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787302625438 出版時(shí)間: 2023-05-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

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

  《學(xué)習(xí)C 20(中文版)》共18章5個(gè)附錄,討論了C 20的5大編程模型:程序化編程、函數(shù)式編程、面向?qū)ο缶幊?、泛型編程和模板元編程。第I部分介紹基礎(chǔ)知識(shí),第II部分介紹容器、C 20范圍、指針、字符串和文件,第III部分介紹現(xiàn)代面向?qū)ο缶幊毯彤惓?,第Ⅳ部分介紹泛型編程、模板、概念和模板元編程,第V部分介紹高級(jí)主題,包括模塊、并行算法、并發(fā)和協(xié)程。 《學(xué)習(xí)C 20(中文版)》適合需要了解C 20新特性的程序員,包括零基礎(chǔ)或有經(jīng)驗(yàn)的C 程序員以及其他想要了解C 的程序員,也適合希望開(kāi)課教C 20的老師。

作者簡(jiǎn)介

  保羅·J.戴特爾(Paul J. Deitel)畢業(yè)于麻省理工學(xué)院(MIT),有42年計(jì)算機(jī)行業(yè)的工作經(jīng)驗(yàn)。他是全球知名的編程語(yǔ)言培訓(xùn)師之一,自1992年以來(lái)一直在為軟件開(kāi)發(fā)人員講授專(zhuān)業(yè)課程。他與哈維·M.戴特爾(Harvey M. Deitel)博士共同編寫(xiě)了全球最暢銷(xiāo)的編程教材、專(zhuān)業(yè)書(shū)籍、視頻和互動(dòng)多媒體電子學(xué)習(xí)內(nèi)容。

圖書(shū)目錄

第Ⅰ部分 編程基礎(chǔ)
第1章 免費(fèi)、流行的C 編譯器 003
第2章 C 編程入門(mén) 025
第3章 控制語(yǔ)句(上) 045
第4章 控制語(yǔ)句(下) 077
第5章 函數(shù)和函數(shù)模板入門(mén) 113
第Ⅱ部分 數(shù)組、指針和字符串
第6章 數(shù)組、向量、范圍和函數(shù)式編程 171
第7章 現(xiàn)代C 對(duì)指針的淡化 211
第8章 string、string_view、文本文件、CSV文件和正則表達(dá)式 247
第Ⅲ部分 面向?qū)ο蟪绦蛟O(shè)計(jì)
第9章 自定義類(lèi) 303
第10章 OOP:繼承和運(yùn)行時(shí)多態(tài)性 379
第11章 操作符重載、拷貝/移動(dòng)語(yǔ)義和智能指針 467
第12章 異常和對(duì)契約的展望 527
第Ⅳ部分 標(biāo)準(zhǔn)庫(kù)容器、迭代器和算法
第13章 標(biāo)準(zhǔn)庫(kù)容器和迭代器 571
第14章 標(biāo)準(zhǔn)庫(kù)算法和C 20范圍/視圖 625
第Ⅴ部分 高級(jí)編程主題
第15章 模板、C 20“概念”和元編程 703
第16章 C 20模塊:大規(guī)模開(kāi)發(fā) 797
第17章 并行算法和并發(fā)性:高級(jí)觀(guān)點(diǎn) 851
第18章 C 20協(xié)程 994
附錄A 操作符優(yōu)先級(jí)和分組 969
附錄B 字符集 971
詳細(xì)目錄
第Ⅰ部分 編程基礎(chǔ)
第1章 免費(fèi)、流行的C 編譯器
1.1 導(dǎo)讀 004
1.2 試運(yùn)行一個(gè)C 20應(yīng)用程序 005
1.2.1 在Windows上用VS 2022社區(qū)版編譯和運(yùn)行C 20應(yīng)用程序 005
1.2.2 在macOS上用Xcode編譯和運(yùn)行C 20應(yīng)用程序 009
1.2.3 在Linux上用GNU C 運(yùn)行C 20應(yīng)用程序 013
1.2.4 在GCC Docker容器中編譯和運(yùn)行C 20應(yīng)用程序 015
1.2.5 在Docker容器中使用clang 來(lái)編譯和運(yùn)行C 20應(yīng)用程序 016
1.3 摩爾定律、多核處理器和并發(fā)編程 018
1.4 面向?qū)ο蠛?jiǎn)單回顧 019
1.5 小結(jié) 021
第2章 C 編程入門(mén)
2.1 導(dǎo)讀 026
2.2 第一個(gè)C 程序:顯示單行文本 026
2.3 修改第一個(gè)C 程序 030
2.4 另一個(gè)C 程序:整數(shù)相加 031
2.5 算術(shù)運(yùn)算 035
2.6 決策:相等性和關(guān)系操作符 036
2.7 對(duì)象自然案例學(xué)習(xí):創(chuàng)建和使用標(biāo)準(zhǔn)庫(kù)類(lèi)string的對(duì)象 040
2.8 小結(jié) 044
第3章 控制語(yǔ)句(上)
3.1 導(dǎo)讀 046
3.2 控制結(jié)構(gòu) 046
3.2.1 順序結(jié)構(gòu) 046
3.2.2 選擇語(yǔ)句 047
3.2.3 循環(huán)語(yǔ)句 048
3.2.4 控制語(yǔ)句小結(jié) 049
3.3 if選擇語(yǔ)句 049
3.4 if…else雙選語(yǔ)句 050
3.4.1 嵌套if…else語(yǔ)句 051
3.4.2 代碼塊 052
3.4.3 條件操作符( :) 053
3.5 while循環(huán)語(yǔ)句 053
3.6 計(jì)數(shù)器控制的循環(huán) 054
3.6.1 實(shí)現(xiàn)計(jì)數(shù)器控制的循環(huán) 054
3.6.2 整數(shù)除法和截?cái)?056
3.7 哨兵值控制的循環(huán) 056
3.7.1 實(shí)現(xiàn)哨兵值控制的循環(huán) 057
3.7.2 基礎(chǔ)類(lèi)型之間的顯式和隱式轉(zhuǎn)換 059
3.7.3 格式化浮點(diǎn)數(shù) 060
3.8 嵌套控制語(yǔ)句 061
3.8.1 問(wèn)題陳述 061
3.8.2 實(shí)現(xiàn)程序 062
3.8.3 用大括號(hào)初始化防止收縮轉(zhuǎn)換 064
3.9 復(fù)合賦值操作符 065
3.10 遞增和遞減操作符 065
3.11 基本類(lèi)型不可移植 068
3.12 對(duì)象自然案例學(xué)習(xí):任意大小的整數(shù) 068
3.13 C 20:用format函數(shù)格式化文本 073
3.14 小結(jié) 075
第4章 控制語(yǔ)句(下)
4.1 導(dǎo)讀 078
4.2 計(jì)數(shù)器控制的循環(huán)的本質(zhì) 078
4.3 for循環(huán)語(yǔ)句 079
4.4 for循環(huán)的例子 081
4.5 應(yīng)用程序:累加偶數(shù)整數(shù) 082
4.6 應(yīng)用程序:復(fù)利計(jì)算 083
4.7 do…while循環(huán)語(yǔ)句 087
4.8 switch多選語(yǔ)句 088
4.9 使用帶初始化器的C 17選擇語(yǔ)句 094
4.10 break語(yǔ)句和continue語(yǔ)句 095
4.11 邏輯操作符 097
4.11.1 邏輯AND(&&)操作符 098
4.11.2 邏輯OR(||)操作符 098
4.11.3 短路求值 099
4.11.4 邏輯非(!)操作符 099
4.11.5 示例:生成邏輯操作符真值表 100
4.12 混淆相等性(==)和賦值(=)操作符 102
4.13 對(duì)象自然案例學(xué)習(xí):使用miniz-cpp庫(kù)讀寫(xiě)ZIP文件8 103
4.14 用域?qū)捄途冗M(jìn)行C 20文本格式化 108
4.15 小結(jié) 110
第5章 函數(shù)和函數(shù)模板入門(mén)
5.1 導(dǎo)讀 114
5.2 C 程序組件 114
5.3 數(shù)學(xué)庫(kù)函數(shù) 115
5.4 函數(shù)定義和函數(shù)原型 117
5.5 函數(shù)實(shí)參的求值順序 120
5.6 函數(shù)原型和實(shí)參強(qiáng)制類(lèi)型轉(zhuǎn)換的有關(guān)注意事項(xiàng) 120
5.6.1 函數(shù)簽名和函數(shù)原型 121
5.6.2 實(shí)參強(qiáng)制類(lèi)型轉(zhuǎn)換 121
5.6.3 實(shí)參提升規(guī)則和隱式轉(zhuǎn)換 121
5.7 C 標(biāo)準(zhǔn)庫(kù)頭文件 123
5.8 案例學(xué)習(xí):隨機(jī)數(shù)生成 126
5.8.1 擲六面骰子 127
5.8.2 六面骰子擲6000萬(wàn)次 127
5.8.3 為給隨機(jī)數(shù)生成器提供種子 129
5.8.4 用random_device為隨機(jī)數(shù)生成器提供種子 131
5.9 案例學(xué)習(xí):概率游戲,介紹有作用域的enum  131
5.10 作用域規(guī)則 137
5.11 內(nèi)聯(lián)函數(shù) 142
5.12 引用和引用參數(shù) 143
5.13 默認(rèn)參數(shù) 146
5.14 一元作用域解析操作符 147
5.15 函數(shù)重載 148
5.16 函數(shù)模板 152
5.17 遞歸 155
5.18 遞歸示例:斐波那契數(shù)列 158
5.19 對(duì)比遞歸和循環(huán) 161
5.20 Lnfylun Lhqtomh Wjtz Qarcv: Qjwazkrplm xzz Xndmwwqhlz 163
5.21 小結(jié) 166
第Ⅱ部分 數(shù)組、指針和字符串
第6章 數(shù)組、向量、范圍和函數(shù)式編程
6.1 導(dǎo)讀 172
6.2 數(shù)組 172
6.3 聲明數(shù)組 173
6.4 用循環(huán)初始化數(shù)組元素 173
6.5 用初始化器列表初始化數(shù)組 176
6.6 C 11基于范圍的for和C 20帶初始化器的基于范圍的for 177
6.7 計(jì)算數(shù)組元素值并理解constexpr 180
6.8 累加數(shù)組元素 182
6.9 使用簡(jiǎn)陋的條形圖以圖形方式顯示數(shù)組數(shù)據(jù) 182
6.10 數(shù)組元素作為計(jì)數(shù)器使用 184
6.11 使用數(shù)組來(lái)匯總調(diào)查結(jié)果 186
6.12 數(shù)組排序和查找 187
6.13 多維數(shù)組 189
6.14 函數(shù)式編程入門(mén) 194
6.14.1 做什么和怎么做 194
6.14.2 函數(shù)作為實(shí)參傳給其他函數(shù):理解lambda表達(dá)式 195
6.14.3 過(guò)濾器、映射和歸約:理解C 20的“范圍”庫(kù) 197
6.15 對(duì)象自然案例學(xué)習(xí):C 標(biāo)準(zhǔn)庫(kù)類(lèi)模板vector 201
6.16 小結(jié) 208
第7章 現(xiàn)代C 對(duì)指針的淡化
7.1 導(dǎo)讀 212
7.2 聲明和初始化指針變量 213
7.2.1 聲明指針 214
7.2.2 初始化指針 214
7.2.3 C 11之前的空指針 214
7.3 指針操作符 214
7.3.1 取址(&)操作符 215
7.3.2 間接尋址(*)操作符 215
7.3.3 使用取址(&)和間接尋址(*)操作符 216
7.4 用指針傳引用 217
7.5 內(nèi)置數(shù)組 221
7.5.1 聲明和訪(fǎng)問(wèn)內(nèi)置數(shù)組 222
7.5.2 初始化內(nèi)建數(shù)組 222
7.5.3 向函數(shù)傳遞內(nèi)置數(shù)組 222
7.5.4 聲明內(nèi)置數(shù)組參數(shù) 223
7.5.5 C 11標(biāo)準(zhǔn)庫(kù)函數(shù)begin和end 223
7.5.6 內(nèi)置數(shù)組的限制 223
7.6 使用C 20 to_array將內(nèi)置數(shù)組轉(zhuǎn)換成std::array 224
7.7 為指針和它指向的數(shù)據(jù)使用const 225
7.7.1 指向非常量數(shù)據(jù)的非常量指針 226
7.7.2 指向常量數(shù)據(jù)的非常量指針 226
7.7.3 指向非常量數(shù)據(jù)的常量指針 227
7.7.4 指向常量數(shù)據(jù)的常量指針 228
7.8 sizeof操作符 229
7.9 指針表達(dá)式和指針?biāo)阈g(shù) 232
7.9.1 在指針上加減整數(shù) 232
7.9.2 從指針上減一個(gè)指針 233
7.9.3 指針賦值 234
7.9.4 不能解引用void* 234
7.9.5 指針比較 234
7.10 對(duì)象自然案例學(xué)習(xí):C 20 span,連續(xù)容器元素的視圖 234
7.11 理解基于指針的字符串 240
7.11.1 命令行參數(shù) 242
7.11.2 再論C 20的to_array函數(shù) 243
7.12 展望其他指針主題 244
7.13 小結(jié) 245
第8章 string、string_view、文本文件、CSV文件和正則表達(dá)式
8.1 導(dǎo)讀 248
8.2 字符串賦值和連接 249
8.3 字符串比較 251
8.4 子串 253
8.5 交換字符串 254
8.6 收集string特征信息 254
8.7 在字符串中查找子串和字符 257
8.8 替換和刪除字符串中的字符 260
8.9 在字符串中插入字符 262
8.10 C 11數(shù)值轉(zhuǎn)換 263
8.11 C 17 string_view 264
8.12 文件和流 267
8.13 創(chuàng)建順序文件 268
8.14 從順序文件讀取數(shù)據(jù) 271
8.15 C 14讀取和寫(xiě)入引號(hào)文本 274
8.16 更新順序文件 275
8.17 字符串流處理 276
8.18 原始字符串字面值 279
8.19 對(duì)象自然案例學(xué)習(xí):讀取和分析包含泰坦尼克號(hào)災(zāi)難數(shù)據(jù)的CSV文件 280
8.19.1 使用 rapidcsv 讀取 CSV 文件的內(nèi)容 280
8.19.2 讀取和分析泰坦尼克號(hào)災(zāi)難數(shù)據(jù)集 282
8.20 對(duì)象自然案例學(xué)習(xí):理解正則表達(dá)式 290
8.20.1 將完整字符串與模式相匹配 291
8.20.2 替換子串 296
8.20.3 查找匹配 296
8.21 小結(jié) 299
第Ⅲ部分 面向?qū)ο蟪绦蛟O(shè)計(jì)
第9章 自定義類(lèi)
9.1 導(dǎo)讀 304
9.2 體驗(yàn)Account對(duì)象 304
9.3 具有賦值和取值成員函數(shù)的Account類(lèi) 306
9.3.1 類(lèi)定義 306
9.3.2 訪(fǎng)問(wèn)說(shuō)明符private和public 309
9.4 Account類(lèi):自定義構(gòu)造函數(shù) 309
9.5 賦值和取值成員函數(shù)的軟件工程優(yōu)勢(shì) 313
9.6 含有余額的Account類(lèi) 314
9.7 Time類(lèi)案例學(xué)習(xí):分離接口與實(shí)現(xiàn) 318
9.7.1 類(lèi)的接口 319
9.7.2 分離接口與實(shí)現(xiàn) 319
9.7.3 類(lèi)定義 320
9.7.4 成員函數(shù) 321
9.7.5 在源代碼文件中包含類(lèi)的頭文件 322
9.7.6 作用域解析操作符(::) 322
9.7.7 成員函數(shù)setTime和拋出異常 323
9.7.8 成員函數(shù)to24HourString和to12HourString 323
9.7.9 隱式內(nèi)聯(lián)的成員函數(shù) 324
9.7.10 成員函數(shù)與全局函數(shù) 324
9.7.11 使用Time類(lèi) 324
9.7.12 對(duì)象的大小 326
9.8 編譯和鏈接過(guò)程 326
9.9 類(lèi)作用域以及對(duì)類(lèi)成員的訪(fǎng)問(wèn) 327
9.10 訪(fǎng)問(wèn)函數(shù)和實(shí)用函數(shù) 328
9.11 Time類(lèi)案例學(xué)習(xí):帶有默認(rèn)參數(shù)的構(gòu)造函數(shù) 329
9.11.1 Time類(lèi) 329
9.11.2 重載構(gòu)造函數(shù)和C 11委托構(gòu)造函數(shù) 334
9.12 析構(gòu)函數(shù) 335
9.13 什么時(shí)候調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù) 335
9.14 Time類(lèi)案例學(xué)習(xí):返回到private數(shù)據(jù)成員的引用或指針時(shí),須謹(jǐn)慎 339
9.15 默認(rèn)賦值操作符 342
9.16 const對(duì)象和const成員函數(shù) 344
9.17 合成:對(duì)象作為類(lèi)成員 346
9.18 友元函數(shù)和友元類(lèi) 351
9.19 this指針 353
9.19.1 隱式和顯式使用this指針訪(fǎng)問(wèn)對(duì)象的數(shù)據(jù)成員 354
9.19.2 使用this指針來(lái)實(shí)現(xiàn)級(jí)聯(lián)函數(shù)調(diào)用 355
9.20 靜態(tài)類(lèi)成員:類(lèi)級(jí)數(shù)據(jù)和成員函數(shù) 359
9.21 C 20中的聚合 364
9.21.1 初始化聚合 365
9.21.2 C 20:指定初始化器 365
9.22 對(duì)象自然案例學(xué)習(xí):用JSON序列化 366
9.22.1 序列化由包含public數(shù)據(jù)的對(duì)象構(gòu)成的vector 367
9.22.2 序列化由包含private數(shù)據(jù)的對(duì)象構(gòu)成的vector 372
9.23 小結(jié) 374
第10章 OOP:繼承和運(yùn)行時(shí)多態(tài)性
10.1 導(dǎo)讀 380
10.2 基類(lèi)和派生類(lèi) 382
10.2.1 CommunityMember類(lèi)層次結(jié)構(gòu) 383
10.2.2 Shape類(lèi)層次結(jié)構(gòu)和public繼承 384
10.3 基類(lèi)和派生類(lèi)的關(guān)系 385
10.3.1 創(chuàng)建和使用SalariedEmployee類(lèi) 385
10.3.2 創(chuàng)建SalariedEmployee/SalariedCommissionEmployee繼承層次結(jié)構(gòu) 388
10.4 派生類(lèi)中的構(gòu)造函數(shù)和析構(gòu)函數(shù) 394
10.5 運(yùn)行時(shí)多態(tài)性入門(mén):多態(tài)性電子游戲 395
10.6 繼承層次結(jié)構(gòu)中對(duì)象之間的關(guān)系 396
10.6.1 從派生類(lèi)對(duì)象調(diào)用基類(lèi)函數(shù) 397
10.6.2 派生類(lèi)指針指向基類(lèi)對(duì)象 400
10.6.3 通過(guò)基類(lèi)指針調(diào)用派生類(lèi)成員函數(shù) 401
10.7 虛函數(shù)和虛析構(gòu)函數(shù) 403
10.7.1 為什么虛函數(shù)這么有用? 403
10.7.2 聲明虛函數(shù) 403
10.7.3 調(diào)用虛函數(shù) 403
10.7.4 SalariedEmployee層次結(jié)構(gòu)中的虛函數(shù) 404
10.7.5 虛析構(gòu)函數(shù) 408
10.7.6 final成員函數(shù)和類(lèi) 408
10.8 抽象類(lèi)和純虛函數(shù) 409
10.8.1 純虛函數(shù) 409
10.8.2 設(shè)備驅(qū)動(dòng)程序:操作系統(tǒng)中的多態(tài)性 410
10.9 案例學(xué)習(xí):使用運(yùn)行時(shí)多態(tài)性的薪資系統(tǒng) 410
10.9.1 創(chuàng)建抽象基類(lèi)Employee 411
10.9.2 創(chuàng)建派生的具體類(lèi)SalariedEmployee 414
10.9.3 創(chuàng)建派生的具體類(lèi)CommissionEmployee 416
10.9.4 演示運(yùn)行時(shí)多態(tài)性處理 418
10.10 運(yùn)行時(shí)多態(tài)性、虛函數(shù)和動(dòng)態(tài)綁定的幕后機(jī)制 421
10.11 非虛接口(NVI)慣用法 425
10.12 藉由接口來(lái)編程,而不要藉由實(shí)現(xiàn)26 432
10.12.1 重新思考Employee層次結(jié)構(gòu):CompensationModel接口 434
10.12.2 Employee類(lèi) 434
10.12.3 實(shí)現(xiàn)CompensationModel 436
10.12.4 測(cè)試新層次結(jié)構(gòu) 439
10.12.5 依賴(lài)注入在設(shè)計(jì)上的優(yōu)勢(shì) 440
10.13 使用std::variant和std::visit實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性 441
10.14 多繼承 447
10.14.1 菱形繼承 452
10.14.2 用虛基類(lèi)繼承消除重復(fù)的子對(duì)象 454
10.15 深入理解protected類(lèi)成員 456
10.16 public、protected和private繼承 457
10.17 更多運(yùn)行時(shí)多態(tài)性技術(shù)和編譯時(shí)多態(tài)性 458
10.17.1 其他運(yùn)行時(shí)多態(tài)性技術(shù) 458
10.17.2 編譯時(shí)(靜態(tài))多態(tài)性技術(shù) 460
10.17.3 其他多態(tài)性概念 461
10.18 小結(jié) 461
第11章 操作符重載、拷貝/移動(dòng)語(yǔ)義和智能指針
11.1 導(dǎo)讀 468
11.2 使用標(biāo)準(zhǔn)庫(kù)string類(lèi)的重載操作符 470
11.3 操作符重載基礎(chǔ) 476
11.3.1 操作符不會(huì)自動(dòng)重載 476
11.3.2 不能重載的操作符 476
11.3.3 不必重載的操作符 476
11.3.4 操作符重載的規(guī)則和限制 477
11.4 用new和delete進(jìn)行動(dòng)態(tài)內(nèi)存管理(過(guò)時(shí)技術(shù)) 477
11.5 現(xiàn)代C 動(dòng)態(tài)內(nèi)存管理:RAII和智能指針 480
11.5.1 智能指針 480
11.5.2 演示unique_ptr 480
11.5.3 unique_ptr的所有權(quán) 482
11.5.4 指向內(nèi)置數(shù)組的unique_ptr 482
11.6 MyArray案例學(xué)習(xí):通過(guò)操作符重載來(lái)打造有價(jià)值的類(lèi) 483
11.6.1 特殊成員函數(shù) 484
11.6.2 使用MyArray類(lèi) 485
11.6.3 MyArray類(lèi)定義 495
11.6.4 指定了MyArray大小的構(gòu)造函數(shù) 496
11.6.5 C 11向構(gòu)造函數(shù)傳遞一個(gè)大括號(hào)初始化器 497
11.6.6 拷貝構(gòu)造函數(shù)和拷貝賦值操作符 498
11.6.7 移動(dòng)構(gòu)造函數(shù)和移動(dòng)賦值操作符 502
11.6.8 析構(gòu)函數(shù) 504
11.6.9 toString和size函數(shù) 505
11.6.10 重載相等性(==)和不相等(!=)操作符 506
11.6.11 重載下標(biāo)([])操作符 508
11.6.12 重載一元bool轉(zhuǎn)換操作符 509
11.6.13 重載前遞增操作符 509
11.6.14 重載后遞增操作符 510
11.6.15 重載加賦值操作符( =) 511
11.6.16 重載二元流提取(>>)和流插入(
11.6.17 友元函數(shù)swap 514
11.7 C 20三路比較操作符() 515
11.8 類(lèi)型之間的轉(zhuǎn)換 518
11.9 explicit構(gòu)造函數(shù)和轉(zhuǎn)換操作符 519
11.10 重載函數(shù)調(diào)用操作符() 522
11.11 小結(jié) 522
第12章 異常和對(duì)契約的展望
12.1 導(dǎo)讀 528
12.2 異常處理控制流 531
12.2.1 定義一個(gè)異常類(lèi)來(lái)表示可能發(fā)生的問(wèn)題類(lèi)型 531
12.2.2 演示異常處理 532
12.2.3 將代碼封閉到try塊中 533
12.2.4 為DivideByZeroException定義catch處理程序 534
12.2.5 異常處理的終止模型 535
12.2.6 用戶(hù)輸入非零分母時(shí)的控制流 535
12.2.7 用戶(hù)輸入零分母時(shí)的控制流 535
12.3 異常安全保證和noexcept 536
12.4 重新拋出異常 537
12.5 棧展開(kāi)和未捕捉的異常 539
12.6 什么時(shí)候使用異常處理 541
12.6.1 assert宏 542
12.6.2 快速失敗 543
12.7 構(gòu)造函數(shù)、析構(gòu)函數(shù)和異常處理 543
12.7.1 從構(gòu)造函數(shù)拋出異常 543
12.7.2 通過(guò)函數(shù)try塊在構(gòu)造函數(shù)中捕獲異常 544
12.7.3 異常和析構(gòu)函數(shù):再論noexcept(false) 546
12.8 處理new的失敗 547
12.8.1 new在失敗時(shí)拋出bad_alloc 548
12.8.2 new在失敗時(shí)返回nullptr 549
12.8.3 使用set_new_handler函數(shù)處理new的失敗 549
12.9 標(biāo)準(zhǔn)庫(kù)異常層次結(jié)構(gòu) 551
12.10 C 的finally塊替代方案:資源獲取即初始化(RAII) 553
12.11 一些庫(kù)同時(shí)支持異常和錯(cuò)誤碼 554
12.12 日志記錄 555
12.13 展望“契約” 555
12.14 小結(jié) 563
第Ⅳ部分 標(biāo)準(zhǔn)庫(kù)容器、迭代器和算法
第13章 標(biāo)準(zhǔn)庫(kù)容器和迭代器
13.1 導(dǎo)讀 572
13.2 容器簡(jiǎn)介 574
13.2.1 序列和關(guān)聯(lián)式容器中的通用嵌套類(lèi)型 575
13.2.2 通用容器成員和非成員函數(shù) 576
13.2.3 對(duì)容器元素的要求 578
13.3 使用迭代器 579
13.3.1 使用istream_iterator進(jìn)行輸入,使用ostream_iterator進(jìn)行輸出 579
13.3.2 迭代器的類(lèi)別 580
13.3.3 容器對(duì)迭代器的支持 581
13.3.4 預(yù)定義迭代器類(lèi)型名稱(chēng) 582
13.3.5 迭代器操作符 582
13.4 算法簡(jiǎn)介 583
13.5 序列容器 584
13.6 vector序列容器 584
13.6.1 使用vector和迭代器 585
13.6.2 vector元素處理函數(shù) 589
13.7 list順序容器 593
13.8 deque序列容器 598
13.9 關(guān)聯(lián)式容器 600
13.9.1 multiset關(guān)聯(lián)式容器 600
13.9.2 set關(guān)聯(lián)式容器 605
13.9.3 multimap關(guān)聯(lián)式容器 607
13.9.4 map關(guān)聯(lián)式容器 609
13.10 容器適配器 611
13.10.1 stack適配器 611
13.10.2 queue適配器 613
13.10.3 priority_queue適配器 614
13.11 bitset近似容器 616
13.12 選讀:Big O簡(jiǎn)介 618
13.13 選讀:哈希表簡(jiǎn)介 621
13.14 小結(jié) 622
第14章 標(biāo)準(zhǔn)庫(kù)算法和C 20范圍/視圖
14.1 導(dǎo)讀 626
14.2 算法要求:C 20“概念” 627
14.3 lambda和算法 629
14.4 算法 633
14.4.1 fill、fill_n、generate和generate_n 633
14.4.2 equal、mismatch和lexicographical_compare 636
14.4.3 remove、remove_if、remove_copy和remove_copy_if 639
14.4.4 replace、replace_if、replace_copy和replace_copy_if 643
14.4.5 打散、計(jì)數(shù)和最小/最大元素算法 645
14.4.6 查找和排序算法 649
14.4.7 swap、iter_swap和swap_ranges 654
14.4.8 copy_backward、merge、unique、reverse、copy_if和copy_n 656
14.4.9 inplace_merge、unique_copy和reverse_copy 660
14.4.10 集合操作 662
14.4.11 lower_bound、upper_bound和equal_range 665
14.4.12 min、max和minmax 667
14.4.13 來(lái)自頭文件的算法gcd、lcm、iota、reduce和partial_sum 669
14.4.14 堆排序和優(yōu)先隊(duì)列 672
14.5 函數(shù)對(duì)象(仿函數(shù)) 677
14.6 投射 682
14.7 C 20視圖和函數(shù)式編程 685
14.7.1 范圍適配器 685
14.7.2 使用范圍適配器和視圖 686
14.8 并行算法簡(jiǎn)介 691
14.9 標(biāo)準(zhǔn)庫(kù)算法小結(jié) 693
14.10 C 23“范圍”前瞻 696
14.11 小結(jié) 696
第Ⅴ部分 高級(jí)編程主題
第15 章 模板、C 20“概念”和元編程 703
15.1 導(dǎo)讀 704
15.2 自定義類(lèi)模板和編譯時(shí)多態(tài)性 707
15.3 C 20對(duì)函數(shù)模板的增強(qiáng) 712
15.3.1 C 20縮寫(xiě)函數(shù)模板 712
15.3.2 C 20模板化lambda 714
15.4 C 20“概念”初探 714
15.4.1 無(wú)約束的函數(shù)模板multiply 715
15.4.2 帶有C 20“概念”的requires子句的有約束的函數(shù)模板 718
15.4.3 C 20預(yù)定義概念 721
15.5 類(lèi)型traits 722
15.6 C 20概念:深入了解 728
15.6.1 創(chuàng)建自定義概念 728
15.6.2 使用概念 728
15.6.3 在縮寫(xiě)函數(shù)模板中使用概念 729
15.6.4 基于概念的重載 731
15.6.5 requires表達(dá)式 733
15.6.6 C 20僅供參詳?shù)母拍?736
15.6.7 C 20“概念”之前的技術(shù):SFINAE和Tag Dispatch 738
15.7 用static_assert測(cè)試C 20概念 738
15.8 創(chuàng)建自定義算法 741
15.9 創(chuàng)建自定義容器和迭代器 743
15.9.1 類(lèi)模板ConstIterator 745
15.9.2 類(lèi)模板Iterator 748
15.9.3 類(lèi)模板MyArray 751
15.9.4 針對(duì)大括號(hào)初始化的MyArray推導(dǎo)指引 754
15.9.5 將MyArray及其自定義迭代器用于std::ranges算法 756
15.10 模板類(lèi)型參數(shù)的默認(rèn)實(shí)參 760
15.11 變量模板 761
15.12 可變參數(shù)模板和折疊表達(dá)式 761
15.12.1 tuple可變參數(shù)類(lèi)模板 761
15.12.2 可變參數(shù)函數(shù)模板和C 17折疊表達(dá)式簡(jiǎn)介 765
15.12.3 折疊表達(dá)式的類(lèi)型 769
15.12.4 一元折疊表達(dá)式如何應(yīng)用它們的操作符 769
15.12.5 二元折疊表達(dá)式如何應(yīng)用它們的操作符 772
15.12.6 使用逗號(hào)操作符重復(fù)執(zhí)行一個(gè)操作 774
15.12.7 將參數(shù)包中的元素約束為同一類(lèi)型 774
15.13 模板元編程 777
15.13.1 C 模板是圖靈完備的 778
15.13.2 在編譯時(shí)計(jì)算值 778
15.13.3 用模板元編程和constexpr if進(jìn)行條件編譯 783
15.13.4 類(lèi)型元函數(shù) 785
15.14 小結(jié) 789
第16章 C 20模塊:大規(guī)模開(kāi)發(fā)
16.1 導(dǎo)讀 798
16.2 C 20之前的編譯和鏈接 799
16.3 模塊的優(yōu)點(diǎn)與目標(biāo) 800
16.4 示例:過(guò)渡到模塊——頭單元 801
16.5 模塊可以減少翻譯單元的大小和編譯時(shí)間 804
16.6 示例:創(chuàng)建并使用模塊 805
16.6.1 模塊接口單元的module聲明 806
16.6.2 導(dǎo)出聲明 808
16.6.3 導(dǎo)出一組聲明 808
16.6.4 導(dǎo)出命名空間 808
16.6.5 導(dǎo)出命名空間的成員 809
16.6.6 導(dǎo)入模塊以使用其導(dǎo)出的聲明 809
16.6.7 示例:試圖訪(fǎng)問(wèn)未導(dǎo)出的模塊內(nèi)容 811
16.7 全局模塊片斷 814
16.8 將接口與實(shí)現(xiàn)分開(kāi) 814
16.8.1 示例:模塊實(shí)現(xiàn)單元 815
16.8.2 示例:模塊化一個(gè)類(lèi) 818
16.8.3 :private模塊片斷 821
16.9 分區(qū) 822
16.9.1 示例:模塊接口分區(qū)單元 822
16.9.2 模塊實(shí)現(xiàn)分區(qū)單元 825
16.9.3 示例:“子模塊”和分區(qū) 825
16.10 其他模塊示例 830
16.10.1 示例:將C 標(biāo)準(zhǔn)庫(kù)作為模塊導(dǎo)入 831
16.10.2 示例:不允許循環(huán)依賴(lài) 832
16.10.3 示例:導(dǎo)入不具傳遞性 833
16.10.4 示例:可見(jiàn)性和可達(dá)性 834
16.11 將代碼遷移到模塊 836
16.12 模塊和模塊工具的未來(lái) 837
16.13 小結(jié) 838
第17章 并行算法和并發(fā)性:高級(jí)觀(guān)點(diǎn)
17.1 導(dǎo)讀 852
17.2 標(biāo)準(zhǔn)庫(kù)并行算法(C 17) 855
17.2.1 示例:分析順序排序和并行排序算法 855
17.2.2 什么時(shí)候使用并行算法 858
17.2.3 執(zhí)行策略 859
17.2.4 示例:分析并行化和矢量化運(yùn)算 859
17.2.5 并行算法的其他注意事項(xiàng) 862
17.3 多線(xiàn)程編程 863
17.3.1 線(xiàn)程狀態(tài)和線(xiàn)程生命周期 863
17.3.2 死鎖和無(wú)限期推遲 865
17.4 用std::jthread啟動(dòng)線(xiàn)程 867
17.4.1 定義在線(xiàn)程中執(zhí)行的任務(wù) 868
17.4.2 在一個(gè)jthread中執(zhí)行任務(wù) 869
17.4.3 jthread對(duì)thread的修正 872
17.5 生產(chǎn)者-消費(fèi)者關(guān)系:首次嘗試 873
17.6 生產(chǎn)者-消費(fèi)者:同步對(duì)共享可變數(shù)據(jù)的訪(fǎng)問(wèn) 881
17.6.1 SynchronizedBuffer類(lèi):互斥體、鎖和條件變量 882
17.6.2 測(cè)試SynchronizedBuffer 889
17.7 生產(chǎn)者-消費(fèi)者:用循環(huán)緩沖區(qū)最小化等待時(shí)間 894
17.8 讀者和寫(xiě)者 904
17.9 協(xié)作式取消jthread 905
17.10 用std::async啟動(dòng)任務(wù) 909
17.11 線(xiàn)程安全的一次性初始化 916
17.12 原子類(lèi)型簡(jiǎn)介 917
17.13 用C 20閉鎖和柵欄來(lái)協(xié)同線(xiàn)程 921
17.13.1 C 20 std::latch 921
17.13.2 C 20 std::barrier 924
17.14 C 20信號(hào)量 928
17.15 C 23:C 并發(fā)性未來(lái)展望 932
17.15.1 并行范圍算法 932
17.15.2 并發(fā)容器 932
17.15.3 其他和并發(fā)性相關(guān)的提案 933
17.16 小結(jié) 933
第18章 C 20協(xié)程
18.1 導(dǎo)讀 942
18.2 協(xié)程支持庫(kù) 943
18.3 安裝concurrencpp和generator庫(kù) 944
18.4 用co_yield和generator庫(kù)創(chuàng)建生成器協(xié)程 944
18.5 用concurrencpp啟動(dòng)任務(wù) 948
18.6 用co_await和co_return創(chuàng)建協(xié)程 953
18.7 低級(jí)協(xié)程概念 962
18.8 C 23的協(xié)程改進(jìn)計(jì)劃 964
18.9 小結(jié) 964
附錄A 操作符優(yōu)先級(jí)和分組 969
附錄B 字符集

本目錄推薦

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