注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(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) 簽: 暫缺

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

第Ⅰ部分 編程基礎(chǔ)
第1章 免費(fèi)、流行的C 編譯器 003
第2章 C 編程入門 025
第3章 控制語句(上) 045
第4章 控制語句(下) 077
第5章 函數(shù)和函數(shù)模板入門 113
第Ⅱ部分 數(shù)組、指針和字符串
第6章 數(shù)組、向量、范圍和函數(shù)式編程 171
第7章 現(xiàn)代C 對(duì)指針的淡化 211
第8章 string、string_view、文本文件、CSV文件和正則表達(dá)式 247
第Ⅲ部分 面向?qū)ο蟪绦蛟O(shè)計(jì)
第9章 自定義類 303
第10章 OOP:繼承和運(yùn)行時(shí)多態(tài)性 379
第11章 操作符重載、拷貝/移動(dòng)語義和智能指針 467
第12章 異常和對(duì)契約的展望 527
第Ⅳ部分 標(biāo)準(zhǔn)庫容器、迭代器和算法
第13章 標(biāo)準(zhǔn)庫容器和迭代器 571
第14章 標(biāo)準(zhǔn)庫算法和C 20范圍/視圖 625
第Ⅴ部分 高級(jí)編程主題
第15章 模板、C 20“概念”和元編程 703
第16章 C 20模塊:大規(guī)模開發(fā) 797
第17章 并行算法和并發(fā)性:高級(jí)觀點(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 來編譯和運(yùn)行C 20應(yīng)用程序 016
1.3 摩爾定律、多核處理器和并發(fā)編程 018
1.4 面向?qū)ο蠛唵位仡?019
1.5 小結(jié) 021
第2章 C 編程入門
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)庫類string的對(duì)象 040
2.8 小結(jié) 044
第3章 控制語句(上)
3.1 導(dǎo)讀 046
3.2 控制結(jié)構(gòu) 046
3.2.1 順序結(jié)構(gòu) 046
3.2.2 選擇語句 047
3.2.3 循環(huán)語句 048
3.2.4 控制語句小結(jié) 049
3.3 if選擇語句 049
3.4 if…else雙選語句 050
3.4.1 嵌套if…else語句 051
3.4.2 代碼塊 052
3.4.3 條件操作符( :) 053
3.5 while循環(huán)語句 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ǔ)類型之間的顯式和隱式轉(zhuǎn)換 059
3.7.3 格式化浮點(diǎn)數(shù) 060
3.8 嵌套控制語句 061
3.8.1 問題陳述 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 基本類型不可移植 068
3.12 對(duì)象自然案例學(xué)習(xí):任意大小的整數(shù) 068
3.13 C 20:用format函數(shù)格式化文本 073
3.14 小結(jié) 075
第4章 控制語句(下)
4.1 導(dǎo)讀 078
4.2 計(jì)數(shù)器控制的循環(huán)的本質(zhì) 078
4.3 for循環(huán)語句 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)語句 087
4.8 switch多選語句 088
4.9 使用帶初始化器的C 17選擇語句 094
4.10 break語句和continue語句 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庫讀寫ZIP文件8 103
4.14 用域?qū)捄途冗M(jìn)行C 20文本格式化 108
4.15 小結(jié) 110
第5章 函數(shù)和函數(shù)模板入門
5.1 導(dǎo)讀 114
5.2 C 程序組件 114
5.3 數(shù)學(xué)庫函數(shù) 115
5.4 函數(shù)定義和函數(shù)原型 117
5.5 函數(shù)實(shí)參的求值順序 120
5.6 函數(shù)原型和實(shí)參強(qiáng)制類型轉(zhuǎn)換的有關(guān)注意事項(xiàng) 120
5.6.1 函數(shù)簽名和函數(shù)原型 121
5.6.2 實(shí)參強(qiáng)制類型轉(zhuǎn)換 121
5.6.3 實(shí)參提升規(guī)則和隱式轉(zhuǎn)換 121
5.7 C 標(biāo)準(zhǔn)庫頭文件 123
5.8 案例學(xué)習(xí):隨機(jī)數(shù)生成 126
5.8.1 擲六面骰子 127
5.8.2 六面骰子擲6000萬次 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 使用簡陋的條形圖以圖形方式顯示數(shù)組數(shù)據(jù) 182
6.10 數(shù)組元素作為計(jì)數(shù)器使用 184
6.11 使用數(shù)組來匯總調(diào)查結(jié)果 186
6.12 數(shù)組排序和查找 187
6.13 多維數(shù)組 189
6.14 函數(shù)式編程入門 194
6.14.1 做什么和怎么做 194
6.14.2 函數(shù)作為實(shí)參傳給其他函數(shù):理解lambda表達(dá)式 195
6.14.3 過濾器、映射和歸約:理解C 20的“范圍”庫 197
6.15 對(duì)象自然案例學(xué)習(xí):C 標(biāo)準(zhǔn)庫類模板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 聲明和訪問內(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)庫函數(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讀取和寫入引號(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章 自定義類
9.1 導(dǎo)讀 304
9.2 體驗(yàn)Account對(duì)象 304
9.3 具有賦值和取值成員函數(shù)的Account類 306
9.3.1 類定義 306
9.3.2 訪問說明符private和public 309
9.4 Account類:自定義構(gòu)造函數(shù) 309
9.5 賦值和取值成員函數(shù)的軟件工程優(yōu)勢 313
9.6 含有余額的Account類 314
9.7 Time類案例學(xué)習(xí):分離接口與實(shí)現(xiàn) 318
9.7.1 類的接口 319
9.7.2 分離接口與實(shí)現(xiàn) 319
9.7.3 類定義 320
9.7.4 成員函數(shù) 321
9.7.5 在源代碼文件中包含類的頭文件 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類 324
9.7.12 對(duì)象的大小 326
9.8 編譯和鏈接過程 326
9.9 類作用域以及對(duì)類成員的訪問 327
9.10 訪問函數(shù)和實(shí)用函數(shù) 328
9.11 Time類案例學(xué)習(xí):帶有默認(rèn)參數(shù)的構(gòu)造函數(shù) 329
9.11.1 Time類 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類案例學(xué)習(xí):返回到private數(shù)據(jù)成員的引用或指針時(shí),須謹(jǐn)慎 339
9.15 默認(rèn)賦值操作符 342
9.16 const對(duì)象和const成員函數(shù) 344
9.17 合成:對(duì)象作為類成員 346
9.18 友元函數(shù)和友元類 351
9.19 this指針 353
9.19.1 隱式和顯式使用this指針訪問對(duì)象的數(shù)據(jù)成員 354
9.19.2 使用this指針來實(shí)現(xiàn)級(jí)聯(lián)函數(shù)調(diào)用 355
9.20 靜態(tà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 基類和派生類 382
10.2.1 CommunityMember類層次結(jié)構(gòu) 383
10.2.2 Shape類層次結(jié)構(gòu)和public繼承 384
10.3 基類和派生類的關(guān)系 385
10.3.1 創(chuàng)建和使用SalariedEmployee類 385
10.3.2 創(chuàng)建SalariedEmployee/SalariedCommissionEmployee繼承層次結(jié)構(gòu) 388
10.4 派生類中的構(gòu)造函數(shù)和析構(gòu)函數(shù) 394
10.5 運(yùn)行時(shí)多態(tài)性入門:多態(tài)性電子游戲 395
10.6 繼承層次結(jié)構(gòu)中對(duì)象之間的關(guān)系 396
10.6.1 從派生類對(duì)象調(diào)用基類函數(shù) 397
10.6.2 派生類指針指向基類對(duì)象 400
10.6.3 通過基類指針調(diào)用派生類成員函數(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ù)和類 408
10.8 抽象類和純虛函數(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)建抽象基類Employee 411
10.9.2 創(chuàng)建派生的具體類SalariedEmployee 414
10.9.3 創(chuàng)建派生的具體類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 藉由接口來編程,而不要藉由實(shí)現(xiàn)26 432
10.12.1 重新思考Employee層次結(jié)構(gòu):CompensationModel接口 434
10.12.2 Employee類 434
10.12.3 實(shí)現(xiàn)CompensationModel 436
10.12.4 測試新層次結(jié)構(gòu) 439
10.12.5 依賴注入在設(shè)計(jì)上的優(yōu)勢 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 用虛基類繼承消除重復(fù)的子對(duì)象 454
10.15 深入理解protected類成員 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)語義和智能指針
11.1 導(dǎo)讀 468
11.2 使用標(biāo)準(zhǔn)庫string類的重載操作符 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)存管理(過時(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í):通過操作符重載來打造有價(jià)值的類 483
11.6.1 特殊成員函數(shù) 484
11.6.2 使用MyArray類 485
11.6.3 MyArray類定義 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 類型之間的轉(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è)異常類來表示可能發(fā)生的問題類型 531
12.2.2 演示異常處理 532
12.2.3 將代碼封閉到try塊中 533
12.2.4 為DivideByZeroException定義catch處理程序 534
12.2.5 異常處理的終止模型 535
12.2.6 用戶輸入非零分母時(shí)的控制流 535
12.2.7 用戶輸入零分母時(shí)的控制流 535
12.3 異常安全保證和noexcept 536
12.4 重新拋出異常 537
12.5 棧展開和未捕捉的異常 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 通過函數(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)庫異常層次結(jié)構(gòu) 551
12.10 C 的finally塊替代方案:資源獲取即初始化(RAII) 553
12.11 一些庫同時(shí)支持異常和錯(cuò)誤碼 554
12.12 日志記錄 555
12.13 展望“契約” 555
12.14 小結(jié) 563
第Ⅳ部分 標(biāo)準(zhǔn)庫容器、迭代器和算法
第13章 標(biāo)準(zhǔn)庫容器和迭代器
13.1 導(dǎo)讀 572
13.2 容器簡介 574
13.2.1 序列和關(guān)聯(lián)式容器中的通用嵌套類型 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 迭代器的類別 580
13.3.3 容器對(duì)迭代器的支持 581
13.3.4 預(yù)定義迭代器類型名稱 582
13.3.5 迭代器操作符 582
13.4 算法簡介 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簡介 618
13.13 選讀:哈希表簡介 621
13.14 小結(jié) 622
第14章 標(biāo)準(zhǔn)庫算法和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 來自頭文件的算法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 并行算法簡介 691
14.9 標(biāo)準(zhǔn)庫算法小結(jié) 693
14.10 C 23“范圍”前瞻 696
14.11 小結(jié) 696
第Ⅴ部分 高級(jí)編程主題
第15 章 模板、C 20“概念”和元編程 703
15.1 導(dǎo)讀 704
15.2 自定義類模板和編譯時(shí)多態(tài)性 707
15.3 C 20對(duì)函數(shù)模板的增強(qiáng) 712
15.3.1 C 20縮寫函數(shù)模板 712
15.3.2 C 20模板化lambda 714
15.4 C 20“概念”初探 714
15.4.1 無約束的函數(shù)模板multiply 715
15.4.2 帶有C 20“概念”的requires子句的有約束的函數(shù)模板 718
15.4.3 C 20預(yù)定義概念 721
15.5 類型traits 722
15.6 C 20概念:深入了解 728
15.6.1 創(chuàng)建自定義概念 728
15.6.2 使用概念 728
15.6.3 在縮寫函數(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 20概念 738
15.8 創(chuàng)建自定義算法 741
15.9 創(chuàng)建自定義容器和迭代器 743
15.9.1 類模板ConstIterator 745
15.9.2 類模板Iterator 748
15.9.3 類模板MyArray 751
15.9.4 針對(duì)大括號(hào)初始化的MyArray推導(dǎo)指引 754
15.9.5 將MyArray及其自定義迭代器用于std::ranges算法 756
15.10 模板類型參數(shù)的默認(rèn)實(shí)參 760
15.11 變量模板 761
15.12 可變參數(shù)模板和折疊表達(dá)式 761
15.12.1 tuple可變參數(shù)類模板 761
15.12.2 可變參數(shù)函數(shù)模板和C 17折疊表達(dá)式簡介 765
15.12.3 折疊表達(dá)式的類型 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ù)包中的元素約束為同一類型 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 類型元函數(shù) 785
15.14 小結(jié) 789
第16章 C 20模塊:大規(guī)模開發(fā)
16.1 導(dǎo)讀 798
16.2 C 20之前的編譯和鏈接 799
16.3 模塊的優(yōu)點(diǎn)與目標(biāo) 800
16.4 示例:過渡到模塊——頭單元 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 示例:試圖訪問未導(dǎo)出的模塊內(nèi)容 811
16.7 全局模塊片斷 814
16.8 將接口與實(shí)現(xiàn)分開 814
16.8.1 示例:模塊實(shí)現(xiàn)單元 815
16.8.2 示例:模塊化一個(gè)類 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)庫作為模塊導(dǎo)入 831
16.10.2 示例:不允許循環(huán)依賴 832
16.10.3 示例:導(dǎo)入不具傳遞性 833
16.10.4 示例:可見性和可達(dá)性 834
16.11 將代碼遷移到模塊 836
16.12 模塊和模塊工具的未來 837
16.13 小結(jié) 838
第17章 并行算法和并發(fā)性:高級(jí)觀點(diǎn)
17.1 導(dǎo)讀 852
17.2 標(biāo)準(zhǔn)庫并行算法(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 多線程編程 863
17.3.1 線程狀態(tài)和線程生命周期 863
17.3.2 死鎖和無限期推遲 865
17.4 用std::jthread啟動(dòng)線程 867
17.4.1 定義在線程中執(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ù)的訪問 881
17.6.1 SynchronizedBuffer類:互斥體、鎖和條件變量 882
17.6.2 測試SynchronizedBuffer 889
17.7 生產(chǎn)者-消費(fèi)者:用循環(huán)緩沖區(qū)最小化等待時(shí)間 894
17.8 讀者和寫者 904
17.9 協(xié)作式取消jthread 905
17.10 用std::async啟動(dòng)任務(wù) 909
17.11 線程安全的一次性初始化 916
17.12 原子類型簡介 917
17.13 用C 20閉鎖和柵欄來協(xié)同線程 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ā)性未來展望 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é)程支持庫 943
18.3 安裝concurrencpp和generator庫 944
18.4 用co_yield和generator庫創(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 ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)