《现代C++教程》[modern-cpp-tutorial]

《现代C++教程》[modern-cpp-tutorial]

《现代C++教程》[modern-cpp-tutorial]


資料來源: 
    中文pdf版链接:https://changkun.de/modern-cpp/pdf/modern-cpp-tutorial-zh-cn.pdf 
    英文版pdf链接:https://changkun.de/modern-cpp/pdf/modern-cpp-tutorial-en-us.pdf 
    在线阅读链接:https://github.com/changkun/modern-cpp-tutorial/blob/master/book/en-us/toc.md 
    书籍代码链接:https://changkun.de/modern-cpp/code/ 
    习题解答链接:https://changkun.de/modern-cpp/exercises/
    All_code : https://github.com/changkun/modern-cpp-tutorial


GITHUB: https://github.com/jash-git/modern-cpp-tutorial.git


目錄
序言7
引言 . . . . . . . . . . . . . . . . . . . . . . . . . 7
目標讀者 . . . . . . . . . . . . . . . . . . . . . . 7
本書目的 . . . . . . . . . . . . . . . . . . . . . . 7
相關代碼 . . . . . . . . . . . . . . . . . . . . . . 8
隨書習題 . . . . . . . . . . . . . . . . . . . . . . 8
第1 章邁向現代C++ 8
    1.1 被棄用的特性 . . . . . . . . . . . . . . . . . . 8
    1.2 與C 的相容性 . . . . . . . . . . . . . . . . . 9
    進一步閱讀的參考文獻 . . . . . . . . . . . . . . . 11
第2 章語言可用性的強化12
    2.1 常量 . . . . . . . . . . . . . . . . . . . . . . . 12
        nullptr  . . . . . . . . . . . . . . . . . . . . . 12
        constexpr  . . . . . . . . . . . . . . . . . . . 13
    2.2 變數及其初始化 . . . . . . . . . . . . . . . . 15
        if/switch 變數聲明強化 . . . . . . . . . . . . 15
        初始化列表 . . . . . . . . . . . . . . . . . . 16
        結構化綁定 . . . . . . . . . . . . . . . . . . 18
    2.3 類型推導 . . . . . . . . . . . . . . . . . . . . 18
        auto  . . . . . . . . . . . . . . . . . . . . . . 18
        decltype  . . . . . . . . . . . . . . . . . . . . 20
        尾返回類型推導 . . . . . . . . . . . . . . . . 20
        decltype(auto)  . . . . . . . . . . . . . . . . 22
    2.4 控制流 . . . . . . . . . . . . . . . . . . . . . . 22
        if constexpr  . . . . . . . . . . . . . . . . . . 22
        區間for 反覆運算 . . . . . . . . . . . . . . . . . 23
    2.5 範本 . . . . . . . . . . . . . . . . . . . . . . . 24
        外部範本 . . . . . . . . . . . . . . . . . . . 24
        尖括弧“>”  . . . . . . . . . . . . . . . . . . 24
        類型別名範本 . . . . . . . . . . . . . . . . . 25
        預設範本參數 . . . . . . . . . . . . . . . . . 25
        變長參數範本 . . . . . . . . . . . . . . . . . 26
        折疊運算式 . . . . . . . . . . . . . . . . . . 28
        非類型範本參數推導 . . . . . . . . . . . . . 28
    2.6 物件導向 . . . . . . . . . . . . . . . . . . . . 29
        委託構造 . . . . . . . . . . . . . . . . . . . 29
        繼承構造 . . . . . . . . . . . . . . . . . . . 30
        顯式虛函數重載 . . . . . . . . . . . . . . . . 30
        顯式禁用預設函數 . . . . . . . . . . . . . . 31
        強類型枚舉 . . . . . . . . . . . . . . . . . . 32
    總結 . . . . . . . . . . . . . . . . . . . . . . . . . 33
    習題 . . . . . . . . . . . . . . . . . . . . . . . . . 33
第3 章語言運行期的強化34
    3.1 Lambda 運算式 . . . . . . . . . . . . . . . . . 34
        基礎 . . . . . . . . . . . . . . . . . . . . . . 34
        泛型Lambda  . . . . . . . . . . . . . . . . . 36
    3.2 函數物件包裝器 . . . . . . . . . . . . . . . . 36
        std::function  . . . . . . . . . . . . . . . . 36
        std::bind 和std::placeholder  . . . . . . 37
    3.3 右值引用 . . . . . . . . . . . . . . . . . . . . 38
        左值、右值的純右值、將亡值、右值 . . . . 38
        右值引用和左值引用 . . . . . . . . . . . . . 39
        移動語義 . . . . . . . . . . . . . . . . . . . 41
        完美轉發 . . . . . . . . . . . . . . . . . . . 42
    總結 . . . . . . . . . . . . . . . . . . . . . . . . . 45
    進一步閱讀的參考文獻 . . . . . . . . . . . . . . . 46
第4 章容器46
    4.1 線性容器 . . . . . . . . . . . . . . . . . . . . 46
        std::array  . . . . . . . . . . . . . . . . . . 46
        std::forward_list  . . . . . . . . . . . . . 48
    4.2 無序容器 . . . . . . . . . . . . . . . . . . . . 48
    4.3 元組 . . . . . . . . . . . . . . . . . . . . . . . 49
        元組基本操作 . . . . . . . . . . . . . . . . . 49
        運行期索引 . . . . . . . . . . . . . . . . . . 51
        元組合並與遍歷 . . . . . . . . . . . . . . . . 51
    總結 . . . . . . . . . . . . . . . . . . . . . . . . . 52
第5 章智慧指標與記憶體管理52
    5.1 RAII 與引用計數 . . . . . . . . . . . . . . . . 52
    5.2 std::shared_ptr  . . . . . . . . . . . . . . . 53
    5.3 std::unique_ptr  . . . . . . . . . . . . . . . 54
    5.4 std::weak_ptr  . . . . . . . . . . . . . . . . . 55
    總結 . . . . . . . . . . . . . . . . . . . . . . . . . 57
    進一步閱讀的參考資料 . . . . . . . . . . . . . . . 57
第6 章規則運算式57
    6.1 規則運算式簡介 . . . . . . . . . . . . . . . . 57
        普通字元 . . . . . . . . . . . . . . . . . . . 57
        特殊字元 . . . . . . . . . . . . . . . . . . . 57
        限定詞 . . . . . . . . . . . . . . . . . . . . . 58
    6.2 std::regex 及其相關 . . . . . . . . . . . . . . . 58
    總結 . . . . . . . . . . . . . . . . . . . . . . . . . 60
    習題 . . . . . . . . . . . . . . . . . . . . . . . . . 60
    進一步閱讀的參考資料 . . . . . . . . . . . . . . . 62
第7 章並行與併發62
    7.1 並行基礎 . . . . . . . . . . . . . . . . . . . . 62
    7.2 互斥量與臨界區 . . . . . . . . . . . . . . . . 63
    7.3 期物 . . . . . . . . . . . . . . . . . . . . . . . 64
    7.4 條件變數 . . . . . . . . . . . . . . . . . . . . 65
    7.5 原子操作與記憶體模型 . . . . . . . . . . . . . . 67
        原子操作 . . . . . . . . . . . . . . . . . . . 68
        一致性模型 . . . . . . . . . . . . . . . . . . 69
        記憶體順序 . . . . . . . . . . . . . . . . . . . 72
    總結 . . . . . . . . . . . . . . . . . . . . . . . . . 74
    習題 . . . . . . . . . . . . . . . . . . . . . . . . . 74
    進一步閱讀的參考資料 . . . . . . . . . . . . . . . 74
第8 章檔案系統75
    8.1 文檔與連結 . . . . . . . . . . . . . . . . . . . 75
    8.2 std::filesystem  . . . . . . . . . . . . . . . . . . 75
第9 章其他雜項75
    9.1 新類型 . . . . . . . . . . . . . . . . . . . . . . 75
        long long int  . . . . . . . . . . . . . . . . 75
    9.2 noexcept 的修飾和操作 . . . . . . . . . . . . 75
    9.3 字面量 . . . . . . . . . . . . . . . . . . . . . . 77
        原始字串字面量 . . . . . . . . . . . . . . 77
        自訂字面量 . . . . . . . . . . . . . . . . . 77
    9.4 記憶體對齊 . . . . . . . . . . . . . . . . . . . . 78
    總結 . . . . . . . . . . . . . . . . . . . . . . . . . 79
第10 章展望:C++20 簡介79
    概念與約束 . . . . . . . . . . . . . . . . . . . . . 79
    模組 . . . . . . . . . . . . . . . . . . . . . . . . . 80
    合約 . . . . . . . . . . . . . . . . . . . . . . . . . 80
    範圍 . . . . . . . . . . . . . . . . . . . . . . . . . 80
    協程 . . . . . . . . . . . . . . . . . . . . . . . . . 80
    事務記憶體 . . . . . . . . . . . . . . . . . . . . . . 80
    總結 . . . . . . . . . . . . . . . . . . . . . . . . . 80
    進一步閱讀的參考資料 . . . . . . . . . . . . . . . 81
附錄1:進一步閱讀的學習材料81
附錄2:現代C++ 的最佳實踐81
常用工具 . . . . . . . . . . . . . . . . . . . . . . 81
代碼風格 . . . . . . . . . . . . . . . . . . . . . . 81
整體性能 . . . . . . . . . . . . . . . . . . . . . . 81
代碼安全 . . . . . . . . . . . . . . . . . . . . . . 82
可維護性 . . . . . . . . . . . . . . . . . . . . . . 82
可攜性 . . . . . . . . . . . . . . . . . . . . . . 82

2 thoughts on “《现代C++教程》[modern-cpp-tutorial]

  1. 82页《现代C++教程》:高速上手C++ 11/14/17/20(附中文PDF下载)[現代C++教程] [電子書 PDF]

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *