C++ 實戰筆記
羅劍鋒
買這商品的人也買了...
-
$640$544 -
$1,460C++ How to Program : Late Objects Version, 7/e (IE-Paperback)
-
$780$616 -
$654$621 -
$700$553 -
$403視頻幀率上轉換技術及其應用
-
$720$562 -
$505C++ 函數式編程 (Functional Programming in C++: How to improve your C++ programs using functional techniques)
-
$458Visual C++ 從入門到精通, 5/e
-
$450$405 -
$594$564 -
$551OpenCV 4 機器學習算法原理與編程實戰
-
$1,008$958 -
$880$695 -
$662二進制分析實戰
-
$505AI 嵌入式系統:算法優化與實現
-
$1,368$1,300 -
$534$507 -
$539$512 -
$620$490 -
$1,780$1,691 -
$690$538 -
$654$621 -
$760C語言學習指南:從規範編程到專業級開發
-
$352精通C++語言
相關主題
商品描述
C++編程語言,堪稱編程語言中的“全能選手”,它不僅功能強大、靈活,而且適用場景非常廣泛。但是要想真正掌握 C++,其技術門檻往往較高,這也使“新手”學起來困難,甚至連“老手”也覺得用好它並不容易。
本書根據作者 20 多年編寫 C++代碼的實踐經驗,精選出了現代 C++中好用且實用的若乾特性,通過代碼演示實戰技巧,幫助讀者輕松地看懂、學會 C++編程。本書從開發環境、開發綜述、核心語言特性、標準庫、進階技能、設計模式、應用實例等方面深入淺出地介紹了 C++實戰技巧。除此之外,本書還囊括了作者多年的開發心得,例如圖書推薦、工作經驗分享、時間管理方法等特色內容。
本書並不是一本入門教程,比較適合學過 C++基礎知識,仍缺乏高效的 C++實戰技巧的讀者閱讀。通過閱讀本書,讀者可以深入洞悉 C++核心知識,進一步夯實實戰技能,開拓編程思路。
作者簡介
羅劍鋒,網名“時空”,前奇虎360技術專業定制,Nginx/OpenResty開源項目貢獻者,也是極客時間《透視作者協議》等專欄的。
他各種網絡應用協議,專注於C/C++、Linux、編程等程序,著有《C++11/14高級編程》《Boost庫完全開髮指南》《Nginx完全開髮指南》《OpenResty》 完全開髮指南》等圖書。
目錄大綱
第 1 章 C 開發環境 1
1.1 環境要求 1
1.1.1 操作系統 1
1.1.2 編譯器 2
1.1.3 實際環境 2
1.2 使用VM搭建環境 3
1.3 使用Docker搭建環境 3
1.4 使用Kuberes搭建環境 4
1.5 測試並驗證 5
1.6 小結 6
1.7 常見問題解答 7
第 2 章 C 開發開發 8
2.1 C標準簡介 8
2.1.1 C 98/03 8
2.1.2 C 11/14 9
2.1.3 C 17 9
2.1.4 C 20 10
2.1.5 C 標準小結 10
2.2 我認識C 10
2.2.1 生命週期 10
2.2.2 編程範式 13
2.2.3 C 核心知識小結 15
2.3 編碼階段的代碼風格 16
2.3.1 留白的藝術 17
2.3.2 固有規範 18
2.3.3 註釋規範 20
2.3.4 源碼組織和管理 22
2.3.5 其他注意事項 23
2.3.6 代碼風格小結 24
2.4 前期編程 24
2.4.1.簡介 24
2.4.2 包含文件 25
2.4.3 宏定義 26
2.4.4 條件編譯 28
2.4.5 初小結 30
2.5 編譯階段編程 31
2.5.1 簡介 31
2.5.2 屬性 32
2.5.3 斷斷言 35
2.5.4 編譯小結 37
2.6、運行階段的調試分析 37
2.7 常見問題解答 38
第3章 C內核語言特性 41
3.1 分類對象編程 41
3.1.1 設計思想 42
3.1.2 實現原則 42
3.1.3 編碼規範 44
3.1.4 實用技巧 46
3.1.5、分類表小結 49
3.2 自動類型推導 49
3.2.1 什麼是自動類型推導 50
3.2.2 自動關鍵字 52
3.2.3 decltype關鍵字 53
3.2.4 用好自動類型推導 55
3.2.5 自動類型推導小結 57
3.3 常數與變量57
3.3.1 const/volatile關鍵字 57
3.3.2 const的使用方法 59
3.3.3 可變關鍵字 62
3.3.4 constexpr關鍵字 63
3.3.5 常數與變量小結64
3.4 異常65
3.4.1 為什麼亮異常 66
3.4.2 異常的用法67
3.4.3 謹慎使用異常 70
3.4.4 保證不拋出異常71
3.4.5 異常小結 72
3.5 函數式編程 72
3.5.1 關於函數的討論 73
3.5.2 λ是什麼 73
3.5.3 λ的形式 75
3.5.4 函數式編程小結 79
3.6 其他新特性精選 80
3.6.1 內聯名字空間 80
3.6.2 隱名字空間 80
3.6.3 強類型枚舉 81
3.6.4 條件語句初始化 82
3.6.5 二進製字面值 82
3.6.6 數字分位 符83
3.7 常見問題解答 83
第4章 C標準庫 86
4.1 智能軌跡 86
4.1.1 智能軌跡簡介 86
4.1.2 向下箭頭87
4.1.3 共享路線89
4.1.4 弱引用軌跡 91
4.1.5 智能軌跡小結 93
4.2 字符串 94
4.2.1 字符串類型 94
4.2.2 字符串的最佳用法95
4.2.3 字符串視圖 98
4.2.4 字符串格式化 100
4.2.5 正則表達式 101
4.2.6 字符串小結 106
4.3 標準容器 107
4.3.1 容器簡介 107
4.3.2 容器的特性 108
4.3.3 順序容器 108
4.3.4 有序容器 110
4.3.5 無序容器 112
4.3.6 標準容器小結 114
4.4特殊容器115
4.4.1 任選值 115
4.4.2 支持值 117
4.4.3 任意值 120
4.4.4 多元組 121
4.4.5特殊容器小結 123
4.5 標準算法123
4.5.1 算法簡介 123
4.5.2 迭代器簡介 125
4.5.3 遍曆算法 126
4.5.4 排序算法 128
4.5.5 尋找算法 129
4.5.6 範圍算法 132
4.5.7 標準算法小結 135
4.6 母親 135
4.6.1 線程簡介 136
4.6.2 單次調用 137
4.6.3 局部存儲 138
4.6.4 原子變量139
4.6.5 線程接口 142
4.6.6 線程並發小結 145
4.7 常見問題解答 145
第5章 C 進階技能 149
5.1 準標準庫 149
5.1.1 字符串轉換 150
5.1.2 串算法 152
5.1.3 關鍵時刻 155
5.1.4 準標準庫小結 157
5.2 數據序列化 157
5.2.1 JSON 158
5.2.2 信息包 160
5.2.3 原緩衝區 描述
5.2.4 數據序列化小結 165
5.3 網絡通信 166
5.3.1 libcurl 166
5.3.2 168
5.3.3 西那特拉 170
5.3.4 ZMQ 176
5.3.5 網絡通信小結 179
5.4 多語言混合編程 179
5.4.1 Python 180
5.4.2 路亞 184
5.4.3 多語言混合編程小結 187
5.5 性能分析 188
5.5.1 外部查看 188
5.5.2 內部分析 192
5.5.3 性能分析小結 195
5.6 常見問題解答 196
第6章 C與設計模式 199
6.1 設計模式簡介 199
6.2 設計原則簡介 200
6.2.1 固體原則 201
6.2.2 DRY/KISS原則 203
6.3 解讀設計模式 203
6.3.1 創建型模式 203
6.3.2 結構型模式 205
6.3.3 行為模式 206
6.3.4 其他模式 208
6.4 小結 209
第7章 C 應用實例 211
7.1 項目設計 211
7.2 準備開發 212
7.2.1 核心頭文件 213
7.2.2 自旋鎖 213
7.2.3 網絡通信 215
7.2.4 配置解析 216
7.3 正式開發 218
7.3.1 數據定義 218
7.3.2 數據序列化 220
7.3.3 數據存儲和統計 220
7.3.4 主服務器 222
7.4 測試驗證 225
7.4.1 完整服務器 225
7.4.2 客戶端 226
7.4.3 運行效果 227
7.5 小結 227
第8章 結束語 229
8.1 評論歪曲C 229
8.2 如何學習C 230
8.3 臨別贈言 230
附錄A經典圖書推薦 232
A.1《設計模式:可數據對象軟件的基礎》232
A.2 《C標準程序庫》 233
A.3 《C語言的設計與擴展》 233
A.4 《C 入門》 234
A.5 小 結234
附錄B 工作經驗分享 236
B.1 Linux 236
B.2 Vim 237
B.3 Git 239
B.4 GDB 239
附錄C 時間管理 241
C.1 工作時間的管理 241
C.2 工作小技巧 243
C.3 非工作時間的管理 243
C.4 小 結245