C++實戰:核心技術與最佳實踐 版權信息
- ISBN:9787115657695
- 條形碼:9787115657695 ; 978-7-115-65769-5
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
C++實戰:核心技術與最佳實踐 本書特色
1.現代C 主線
含C 98 11 14 17 20 23,適合初中級開發者
2.作者背景深厚
專研C 編程30年,助你突破C 痛點與難點
3.關注核心特性
聚焦高頻使用的語言特性,重點講解語言慣用法
4.面向實戰開發
針對實際應用場景下的常見問題,提供解決方案
5.講解通俗易懂
多圖多表多代碼,內容簡單易讀,代碼方便實現
C++實戰:核心技術與最佳實踐 內容簡介
這是一本面向實戰的現代C++指南,由作者結合30余年C++編程經驗傾力打造。書中聚焦開發者日常高頻使用的語言特性,重點講解慣用法(而非羅列語言里的瑣碎細節),展示代碼示例及其技術原理,旨在幫助大家又快又好地使用C++。
作者精選了對象生存期與RAII、移動語義、標準模板庫(STL)、視圖、智能指針、錯誤處理、并發與異步編程等核心主題,深入淺出地剖析語言特性,并針對實際開發中的常見問題提供解決方案。
本書面向C/C++程序員(特別是遇到困難、希望深入理解并優化C++開發的讀者),以及其他需要提升C++編程能力的開發者。
C++實戰:核心技術與最佳實踐 目錄
推薦序vii前言ix致謝xiv緒論xv第 1 章C 和 C 基礎11.1C 基礎知識11.1.1代碼組織11.1.2預處理21.1.3函數31.1.4語句和表達式41.1.5對象和變量51.1.6基礎類型61.1.7指針7推薦序vii前言ix致謝xiv緒論xv第 1 章C 和 C 基礎11.1C 基礎知識11.1.1代碼組織11.1.2預處理21.1.3函數31.1.4語句和表達式41.1.5對象和變量51.1.6基礎類型61.1.7指針71.1.8枚舉71.1.9數組81.1.10結構體91.1.11聯合體91.2C 基礎知識101.2.1C 是 C 的超集嗎?101.2.2引用121.2.3重載141.2.4名空間161.2.5類171.2.6面向對象編程231.2.7運行期類型識別251.2.8異常251.2.9模板271.2.10具名轉型281.3小結29第 2 章對象生存期和 RAII302.1C 對象的存儲期和生存期302.1.1靜態對象的生存期302.1.2動態對象的生存期322.1.3自動對象的生存期362.2RAII 慣用法422.3小結45第 3 章值類別和移動語義463.1引用語義和值語義463.2值類別483.2.1左值483.2.2右值493.3移動語義513.3.1提供移動操作的重載513.3.2移動對代碼風格的影響533.3.3返回值優化553.4值類別的其他細節593.4.1右值引用變量的值類別593.4.2轉發引用和完美轉發*603.5三法則、五法則和零法則623.6小結65第 4 章模板和自動類型推導664.1模板概要664.2函數模板674.2.1模板的定義674.2.2模板的實例化684.2.3模板參數推導和 auto 自動類型推導694.3類模板734.3.1模板的定義734.3.2模板的顯式特化734.3.3類模板的成員函數和類的成員函數模板754.4變量模板764.5別名模板764.6其他類型推導774.6.1類模板參數推導774.6.2decltype774.6.3后置返回類型聲明和返回類型自動推導784.6.4聲明變量和初始化的不同方式*794.6.5結構化綁定824.7小結83第 5 章字符串845.1字符串概述845.2string 的基本特點855.2.1類容器特性855.2.2字符串特性875.3basic_string 模板925.4小結93第 6 章函數對象946.1什么是函數對象946.1.1函數對象類946.1.2高階函數956.1.3函數的指針和引用956.2lambda 表達式966.2.1基本用法和原理966.2.2捕獲976.2.3泛型 lambda 表達式1006.3使用 function 對象1006.4小結102第 7 章標準容器1037.1標準模板庫和容器1037.2序列容器1047.2.1vector1047.2.2deque1117.2.3list1127.2.4forward_list1147.2.5array1157.3關聯容器1177.3.1排序問題1177.3.2關聯容器的特性1207.3.3通透比較器1247.4無序關聯容器1267.4.1哈希函數對象1267.4.2無序關聯容器的接口1287.4.3無序關聯容器的底層細節1287.5容器適配器1307.5.1queue1307.5.2stack1317.5.3priority_queue1327.6性能說明1337.7小結133第 8 章迭代器1348.1基本概念1348.1.1迭代器的初步示例1348.1.2ostream_range.h 對被輸出對象的要求1368.2迭代器的類別1378.2.1迭代器1388.2.2輸入迭代器1408.2.3前向迭代器1408.2.4雙向迭代器1418.2.5隨機訪問迭代器1418.2.6連續迭代器1428.2.7輸出迭代器1428.3基于范圍的 for 循環1438.3.1范圍表達式的生存期問題*1468.3.2鍵?C值對容器的遍歷1468.3.3哨兵類型*1478.4小結149第 9 章標準算法1509.1算法概述1509.2一些常用算法1509.2.1映射1509.2.2歸約1519.2.3過濾1529.2.4生成1549.2.5復制1559.2.6搜索1579.2.7排序1599.2.8其他1609.3并行算法1629.4C 20 的范圍算法*1639.5小結166第 10 章視圖16710.1視圖概述16710.2string_view16710.2.1基本用法16810.2.2視圖的生存期問題16910.2.3string_view 和 string17010.2.4string_view 的哈希*17210.3span17210.3.1基本用法17210.3.2一些技術細節17310.3.3gsl::span 的性能問題17510.4C 20 里的視圖*17510.4.1映射17610.4.2過濾17610.4.3反轉17610.4.4取子元素17710.4.5管道和管道的性能17710.4.6其他視圖17810.5小結179第 11 章智能指針18011.1智能指針概述18011.2唯一所有權的智能指針 unique_ptr18011.2.1基本使用場景和示例18011.2.2一些技術細節18211.3共享所有權的智能指針 shared_ptr18311.3.1基本使用場景和示例18311.3.2弱指針 weak_ptr18411.3.3引用計數的性能問題18511.4智能指針的傳遞方式18611.5刪除器的行為定制18711.6小結189第 12 章現代 C 的一些重要改進19012.1類19012.1.1類數據成員的默認初始化19012.1.2override 和 final19112.2靜態斷言19312.3字面量19412.3.1用戶定義字面量19412.3.2二進制字面量19712.4數字分隔符19812.5constexpr 變量和函數*19912.5.1字面類型20012.6枚舉類和指定枚舉的底層類型20112.6.1byte 類型20212.7多元組 tuple20312.7.1利用 tuple 的快速比較20412.8時間庫 chrono20512.8.1C 20 前的 chrono 庫20512.8.2C 20 的 chrono 庫改進*20812.9隨機數庫 random21012.10正則表達式庫 regex21212.11小結215第 13 章契約和異常21613.1契約式設計21613.1.1契約式設計的優點、應用場景和實現方式21713.1.2先決條件21913.1.3后置條件22213.1.4不變量22413.2異常22513.2.1不使用異常的 C 風格錯誤處理22613.2.2使用異常的代碼示例22913.2.3如何處理異常23113.2.4不用異常的理由23413.2.5不用異常的后果23613.3小結238第 14 章optional variant 和錯誤處理23914.1不使用異常的錯誤處理23914.2optional24014.3variant24214.3.1訪問 variant24414.4expected24614.5標準錯誤碼24914.5.1文件系統庫里面的錯誤處理24914.5.2集成自定義錯誤碼25114.6返回值優化問題25314.7小結255第 15 章傳遞對象的方式25615.1傳統的對象傳遞方式25615.2性能優化的對象傳遞方式25815.2.1針對移動的優化25815.2.2該不該用值傳參?25915.2.3“不可教授”的極致性能傳參方式*26415.2.4字符串的特殊處理26615.3小結267第 16 章并發編程26816.1并發編程概述26816.2線程和鎖26916.2.1線程和鎖的基本示例27016.2.2thread 的析構問題27116.2.3數據競爭示例27216.2.4鎖的更多細節27316.3通知機制27416.4期值27816.4.1async 和 future27816.4.2promise 和 future27916.4.3packaged_task 和 future28016.5內存序和原子量28116.5.1執行順序問題28116.5.2獲得?C釋放語義28616.5.3atomic28816.6線程局部對象29216.7線程安全的容器?29616.7.1標準容器的線程安全性29616.7.2同步訪問的模板工具29716.7.3支持并發訪問的容器29916.8小結300第 17 章異步編程30117.1異步編程的基本概念30117.2Asio30217.2.1異步執行30217.2.2異步回調30517.2.3同步網絡程序30617.2.4異步網絡程序30917.3C 20協程31317.3.1使用協程的異步網絡程序31317.3.2使用協程的生成器*31617.3.3有棧和無棧協程*31917.4小結321第 18 章探索 C 的工具32218.1編譯器32218.1.1主流編譯器簡介32218.1.2優化選項32518.1.3告警選項32618.1.4編譯器的其他重要功能32718.1.5標準庫的調試模式32818.2Clang 系列工具32918.2.1Clang-Format32918.2.2Clang-Tidy33118.2.3clangd33318.3運行期檢查工具33318.3.1valgrind33318.3.2AddressSanitizer(ASan)33318.3.3UndefinedBehaviorSanitizer(UBSan)33418.3.4ThreadSanitizer(TSan)33518.4Compiler Explorer33518.5小結336結束語337推薦閱讀材料338索引340
展開全部
C++實戰:核心技術與最佳實踐 作者簡介
吳詠煒國內 C 專家、Boolan 首席技術咨詢師,曾任英特爾亞太研發中心資深系統架構師,畢業于復旦大學物理系,擁有 30 年 C C 系統級軟件開發和架構經驗。目前從事 C 相關的技術咨詢和培訓工作,為華為、大疆等多家公司提供過服務。工作涉及 C C 語言、軟件架構、安全軟件開發、性能優化、代碼重用、開源軟件等多方面。開源軟件作品包括:mozi、nvwa、libunibreak 等。吳詠煒國內 C 專家、Boolan 首席技術咨詢師,曾任英特爾亞太研發中心資深系統架構師,畢業于復旦大學物理系,擁有 30 年 C C 系統級軟件開發和架構經驗。目前從事 C 相關的技術咨詢和培訓工作,為華為、大疆等多家公司提供過服務。工作涉及 C C 語言、軟件架構、安全軟件開發、性能優化、代碼重用、開源軟件等多方面。開源軟件作品包括:mozi、nvwa、libunibreak 等。專欄或者翻譯作品包括:極客時間專欄《現代 C 編程實戰》(累計學習人數超過 3.5 萬人),圖書翻譯作品《編程大師訪談錄》《C Core Guidelines 解析》,論文翻譯作品《在紛繁多變的世界里茁壯成長:C 2006—2020》,等等。