C++20 高級編程, 5/e

[比]馬克·格雷戈勒(Marc Gregoire) 著 程序喵大人 惠惠 墨梵 譯

  • C++20 高級編程, 5/e-preview-1
  • C++20 高級編程, 5/e-preview-2
  • C++20 高級編程, 5/e-preview-3
C++20 高級編程, 5/e-preview-1

買這商品的人也買了...

相關主題

商品描述

主要內容 ● 演示如何用C++思考,以**限度地發揮語言的深遠能力,並開發有效的解決方案 ● 解釋難以理解的原理,進行陷阱警告,分享提高效率和性能的提示、技巧和變通方法 ● 呈現各種具有挑戰性的、真實世界的程序,其用途廣泛,足以融入任何項目 ● 重點介紹C++20的新特性,包括模塊、概念、三向比較、立即執行函數等 ● 深入討論新的C++20標準庫功能,例如文本格式化、範圍、原子智能指針、同步原語、日期、時區等

作者簡介

馬克·格雷戈勒(Marc Gregoire)是微軟Visual C++的MVP、軟件架構師和開發人員,比利時C++用戶組的創始人。他曾為西門子和諾基亞西門子網絡公司完成關鍵的2G和3G通信軟件,目前在Nikon Metrology公司工作,負責開發X射線、CT和3D幾何檢測軟件。Marc是該系列書第2版到第4版的作者,並擔任多本IT圖書的技術編輯。

目錄大綱

第Ⅰ部分 專業的C++簡介
第1章 C++和標準庫速成
1.1 C++速成
1.1.1 小程序“Hello World”
1.1.2 名稱空間
1.1.3 字面量
1.1.4 變量
1.1.5 運算符
1.1.6 枚舉類型
1.1.7 結構體
1.1.8 條件語句
1.1.9 條件運算符
1.1.10 邏輯比較運算符
1.1.11 三向比較運算符
1.1.12 函數
1.1.13 屬性
1.1.14 C風格的數組
1.1.15 std::array
1.1.16 std::vector
1.1.17 std::pair
1.1.18 std::optional
1.1.19 結構化綁定
1.1.20 循環
1.1.21 初始化列表
1.1.22 C++中的字符串
1.1.23 作為面向對象語言的C++
1.1.24 作用域解析
1.1.25 統一初始化
1.1.26 指針和動態內存
1.1.27 const的用法
1.1.28 constexpr關鍵字
1.1.29 consteval關鍵字
1.1.30 引用
1.1.31 const_cast()
1.1.32 異常
1.1.33 類型別名
1.1.34 類型定義
1.1.35 類型推斷
1.1.36 標準庫
1.2 第一個大型的C++程序
1.2.1 雇員記錄系統
1.2.2 Employee類
1.2.3 Database類
1.2.4 用戶界面
1.2.5 評估程序
1.3 本章小結
1.4 練習
第2章 使用string和string_view
2.1 動態字符串
2.1.1 C風格字符串
2.1.2 字符串字面量
2.1.3 C++ std::string類
2.1.4 數值轉換
2.1.5 std::string_view類
2.1.6 非標準字符串
2.2 字符串格式化
2.2.1 格式說明符
2.2.2 格式說明符錯誤
2.2.3 支持自定義類型
2.3 本章小結
2.4 練習
第3章 編碼風格
3.1 良好外觀的重要性
3.1.1 事先考慮
3.1.2 良好風格的元素
3.2 為代碼編寫文檔
3.2.1 使用註釋的原因
3.2.2 註釋的風格
3.3 分解
3.3.1 通過重構分解
3.3.2 通過設計分解
3.3.3 本書中的分解
3.4 命名
3.4.1 選擇恰當的名稱
3.4.2 命名約定
3.5 使用具有風格的語言特性
3.5.1 使用常量
3.5.2 使用引用代替指針
3.5.3 使用自定義異常
3.6 格式
3.6.1 關於大括號對齊的爭論
3.6.2 關於空格和圓括號的爭論
3.6.3 空格、製表符、換行符
3.7 風格的挑戰
3.8 本章小結
3.9 練習
第Ⅱ部分 專業的C++軟件設計
第4章 設計專業的C++程序
4.1 程序設計概述
4.2 程序設計的重要性
4.3 C++設計
4.4 C++設計的兩個原則
4.4.1 抽象
4.4.2 重用
4.5 重用現有代碼
4.5.1 關於術語的說明
4.5.2 決定是否重用代碼
4.5.3 重用代碼的指導原則
4.6 設計一個國際象棋程序
4.6.1 需求
20.2 算法詳解
20.2.1 非修改序列算法
20.2.2 修改序列算法
20.2.3 操作算法
20.2.4 分區算法
20.2.5 排序算法
20.2.6 二分查找算法
20.2.7 集合算法
20.2.8 最小/最大算法
20.2.9 並行算法
20.2.10 約束算法
20.2.11 數值處理算法
20.3 本章小結
20.4 練習
第21章 字符串的本地化與正則表達式
21.1 本地化
21.1.1 寬字符
21.1.2 本地化字符串字面量
21.1.3 非西方字符集
21.1.4 locale和facet
21.1.5 轉換
21.2 正則表達式
21.2.1 ECMAScript語法
21.2.2 regex庫
21.2.3 regex_match()
21.2.4 regex_search()
21.2.5 regex_iterator
21.2.6 regex_token_iterator
21.2.7 regex_replace()
21.3 本章小結
21.4 練習
第22章 日期和時間工具
22.1 編譯期有理數
22.2 持續時間
22.3 時鐘
22.4 時間點
22.5 日期
22.6 時區
22.7 本章小結
22.8 練習
第23章 隨機數工具
23.1 C風格隨機數生成器
23.1.1 隨機數引擎
23.1.2 隨機數引擎適配器
23.1.3 預定義的隨機數引擎和引擎適配器
23.1.4 生成隨機數
23.1.5 隨機數分佈
23.2 本章小結
23.3 練習
第24章 其他庫工具
24.1 variant
24.2 any
24.3 元組
24.3.1 分解元組
24.3.2 串聯
24.3.3 比較
24.3.4 make_from_tuple()
24.3.5 apply()
24.4 本章小結
24.5 練習
第Ⅳ部分 掌握C++