深入應用C++11

深入應用C++11 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:祁宇
出品人:
頁數:0
译者:
出版時間:2015-5
價格:79
裝幀:平裝
isbn號碼:9787111500698
叢書系列:華章原創精品
圖書標籤:
  • C++11
  • C++
  • 編程
  • C/C++
  • 計算機
  • 軟件開發
  • 計算機-
  • TMP
  • C++
  • C++11
  • 編程
  • 技術
  • 計算機科學
  • 軟件開發
  • 算法
  • 數據結構
  • 現代C++
  • 深入學習
  • 實踐
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

在StackOverflow的最近一次世界性調查中,C++11在所有的編程語言中排名第二, C++11受到程序員的追捧是毫不意外的,因為它就像C++之父Bjarne Stroustrup說的:它看起來就像一門新的語言。C++11新增加瞭相當多的現代編程語言的特性,相比C++98/03,它在生産力、安全性、性能和易用性上都有瞭大幅提高。比如auto和decltype讓我們從書寫冗長的類型和繁瑣的類型推斷中解脫齣來,智能指針讓我們再也不用擔心內存泄漏的問題,右值引用避免瞭無謂的臨時對象拷貝,type_traits和可以變模闆參數讓我們可以更方便地寫更加泛化的代碼……這些還隻是新增的一百多項新特性中的一小部分而已。C++14的標準在2014年的時候已經確定,而C++17標準正在製定當中,可以預見的未來,C++的發展會越來越好,C++的應用會越來越廣泛,也會更受廣大開發者地歡迎。

本書的內容來源於C++11項目實踐,寫作此書的目的是為瞭和廣大讀者分享學習和應用C++11的經驗和樂趣。本書分為兩篇,第一篇主要是介紹一些常用的C++11特性,介紹這些特性是如何優化C++11以前的一些代碼的,讀者可以從中更深刻地領悟這些新特性;第二篇主要是一些實際開發中的典型應用案例,通過這些案例讀者可以看到C++11的這些新特性是如何綜閤運用於實際開發中的,具有實踐的指導作用。相信本書會成為讀者學習和應用C++11的良師益友。

著者簡介

祁 宇 資深C++技術專傢,緻力於C++11的應用、研究和推廣。金山軟件WPS資深工程師,負責Android服務端開發。精通OOP、OOD、設計模式和重構,主要研究方嚮為架構設計和業務重構,有豐富的開發和研發管理經驗。愛好C++,愛好開源,樂於研究和分享技術,開源瞭多個項目(github地址: https://github.com/qicosmos),在《程序員》雜誌發錶多篇技術文章。

2013年被評為珠海市優秀青年人纔。

圖書目錄

前言
第一篇 C++11改進我們的程序
第1章 使用C++11讓程序更簡潔、更現代 2
1.1 類型推導 2
1.1.1 auto類型推導 2
1.1.2 decltype關鍵字 9
1.1.3 返迴類型後置語法——auto和decltype的結閤使用 14
1.2 模闆的細節改進 16
1.2.1 模闆的右尖括號 16
1.2.2 模闆的彆名 18
1.2.3 函數模闆的默認模闆參數 20
1.3 列錶初始化 22
1.3.1 統一的初始化 23
1.3.2 列錶初始化的使用細節 25
1.3.3 初始化列錶 29
1.3.4 防止類型收窄 32
1.4 基於範圍的for循環 34
1.4.1 for循環的新用法 34
1.4.2 基於範圍的 for循環的使用細節 36
1.4.3 讓基於範圍的 for循環支持自定義類型 40
1.5 std::function和bind綁定器 47
1.5.1 可調用對象 47
1.5.2 可調用對象包裝器——std::function 49
1.5.3 std::bind綁定器 52
1.6 lambda錶達式 56
1.6.1 lambda錶達式的概念和基本用法 56
1.6.2 聲明式的編程風格,簡潔的代碼 59
1.6.3 在需要的時間和地點實現閉包,使程序更靈活 60
1.7 tupe元組 61
1.8 總結 63
第2章 使用C++11改進程序性能 64
2.1 右值引用 64
2.1.1 &&的特性 65
2.1.2 右值引用優化性能,避免深拷貝 71
2.2 move語義 77
2.3 forward和完美轉發 78
2.4 emplace_back減少內存拷貝和移動 81
2.5 unordered container無序容器 83
2.6 總結 85
第3章 使用C++11消除重復,提高代碼質量 86
3.1 type_traits——類型萃取 86
3.1.1 基本的type_traits 87
3.1.2 根據條件選擇的traits 96
3.1.3 獲取可調用對象返迴類型的traits 96
3.1.4 根據條件禁用或啓用某種或某些類型traits 99
3.2 可變參數模闆 103
3.2.1 可變參數模闆函數 103
3.2.2 可變參數模闆類 107
3.2.3 可變參數模闆消除重復代碼 111
3.3 可變參數模版和type_taits的綜閤應用 114
3.3.1 optional的實現 114
3.3.2 惰性求值類lazy的實現 118
3.3.3 dll幫助類 122
3.3.4 lambda鏈式調用 126
3.3.5 any類的實現 128
3.3.6 function_traits 131
3.3.7 variant的實現 134
3.3.8 ScopeGuard 140
3.3.9 tuple_helper 141
3.4 總結 153
第4章 使用C++11解決內存泄露的問題 155
4.1 shared_ptr共享的智能指針 155
4.1.1 shared_ptr的基本用法 156
4.1.2 使用shared_ptr需要注意的問題 157
4.2 unique_ptr獨占的智能指針 159
4.3 weak_ptr弱引用的智能指針 161
4.3.1 weak_ptr基本用法 161
4.3.2 weak_ptr返迴this指針 162
4.3.3 weak_ptr解決循環引用問題 163
4.4 通過智能指針管理第三方庫分配的內存 164
4.5 總結 166
第5章 使用C++11讓多綫程開發變得簡單 167
5.1 綫程 167
5.1.1 綫程的創建 167
5.1.2 綫程的基本用法 170
5.2 互斥量 171
5.2.1 獨占互斥量std::mutex 171
5.2.2 遞歸互斥量std::recursive_mutex 172
5.2.3 帶超時的互斥量std::timed_mutex和std::recursive_timed_mutex 174
5.3 條件變量 175
5.4 原子變量 179
5.5 call_once/once_flag的使用 180
5.6 異步操作 181
5.6.1 獲取綫程函數返迴值的類std::future 181
5.6.2 協助綫程賦值的類 std::promise 182
5.6.3 可調用對象的包裝類std::package_task 182
5.6.4 std::promise、std::packaged_task和std::future三者之間的關係 183
5.7 綫程異步操作函數async 184
5.8 總結 185
第6章 使用C++11中便利的工具 186
6.1 處理日期和時間的chrono庫 186
6.1.1 記錄時長的duration 186
6.1.2 錶示時間點的time point 188
6.1.3 獲取係統時鍾的clocks 190
6.1.4 計時器timer 191
6.2 數值類型和字符串的相互轉換 193
6.3 寬窄字符轉換 195
6.4 總結 196
第7章 C++11的其他特性 197
7.1 委托構造函數和繼承構造函數 197
7.1.1 委托構造函數 197
7.1.2 繼承構造函數 199
7.2 原始的字麵量 201
7.3 final和override關鍵字 203
7.4 內存對齊 204
7.4.1 內存對齊介紹 204
7.4.2 堆內存的內存對齊 207
7.4.3 利用alignas指定內存對齊大小 207
7.4.4 利用alignof和std::alignment_of獲取內存對齊大小 208
7.4.5 內存對齊的類型std::aligned_storage 209
7.4.6 std::max_align_t和std::align操作符 211
7.5 C++11新增的便利算法 211
7.6 總結 216
第二篇 C++11工程級應用
第8章 使用C++11改進我們的模式 218
8.1 改進單例模式 218
8.2 改進觀察者模式 223
8.3 改進訪問者模式 227
8.4 改進命令模式 232
8.5 改進對象池模式 236
8.6 總結 240
第9章 使用C++11開發一個半同步半異步綫程池 241
9.1 半同步半異步綫程池介紹 241
9.2 綫程池實現的關鍵技術分析 242
9.3 同步隊列 243
9.4 綫程池 247
9.5 應用實例 250
9.6 總結 251
第10章 使用C++11開發一個輕量級的AOP庫 252
10.1 AOP介紹 252
10.2 AOP的簡單實現 253
10.3 輕量級的AOP框架的實現 255
10.4 總結 260
第11章 使用C++11開發一個輕量級的IoC容器 261
11.1 IoC容器是什麼 261
11.2 IoC創建對象 265
11.3 類型擦除的常用方法 267
11.4 通過Any和閉包來擦除類型 269
11.5 創建依賴的對象 273
11.6 完整的IoC容器 275
11.7 總結 283
第12章 使用C++11開發一個對象的消息總綫庫 284
12.1 消息總綫介紹 284
12.2 消息總綫關鍵技術 284
12.2.1 通用的消息定義 285
12.2.2 消息的注冊 285
12.2.3 消息分發 289
12.2.4 消息總綫的設計思想 289
12.3 完整的消息總綫 292
12.4 應用實例 297
12.5 總結 301
第13章 使用C++11封裝sqlite庫 302
13.1 sqlite基本用法介紹 303
13.1.1 打開和關閉數據庫的函數 304
13.1.2 執行SQL語句的函數 305
13.2 rapidjson基本用法介紹 310
13.2.1 解析json字符串 310
13.2.2 創建json對象 311
13.2.3 對rapidjson的一點擴展 315
13.3 封裝sqlite的SmartDB 316
13.3.1 打開和關閉數據庫的接口 317
13.3.2 Excecute接口 319
13.3.3 ExecuteScalar接口 323
13.3.4 事務接口 325
13.3.5 ExcecuteTuple接口 325
13.3.6 json接口 327
13.3.7 查詢接口 329
13.4 應用實例 332
13.5 總結 335
第14章 使用C++11開發一個linq to objects庫 336
14.1 LINQ介紹 336
14.1.1 LINQ語義 336
14.1.2 Linq標準操作符(C#) 337
14.2 C++中的LINQ 339
14.3 LINQ實現的關鍵技術 340
14.3.1 容器和數組的泛化 341
14.3.2 支持所有的可調用對象 344
14.3.3 鏈式調用 345
14.4 linq to objects的具體實現 347
14.4.1 一些典型LINQ操作符的實現 347
14.4.2 完整的linq to objects的實現 349
14.5 linq to objects的應用實例 358
14.6 總結 360
第15章 使用C++11開發一個輕量級的並行task庫 361
15.1 TBB的基本用法 362
15.1.1 TBB概述 362
15.1.2 TBB並行算法 362
15.1.3 TBB的任務組 365
15.2 PPL的基本用法 365
15.2.1 PPL任務的鏈式連續執行 365
15.2.2 PPL的任務組 366
15.3 TBB和PPL的選擇 367
15.4 輕量級的並行庫TaskCpp的需求 367
15.5 TaskCpp的任務 368
15.5.1 task的實現 368
15.5.2 task的延續 369
15.6 TaskCpp任務的組閤 372
15.6.1 TaskGroup 372
15.6.2 WhenAll 376
15.6.3 WhenAny 378
15.7 TaskCpp並行算法 381
15.7.1 ParallelForeach:並行對區間元素執行某種操作 381
15.7.2 ParallelInvoke:並行調用 382
15.7.3 ParallelReduce:並行匯聚 383
15.8 總結 386
第16章  使用C++11開發一個簡單的通信程序 387
16.1 反應器和主動器模式介紹 387
16.2 asio中的Proactor 391
16.3 asio的基本用法 394
16.3.1 異步接口 395
16.3.2 異步發送 397
16.4 C++11結閤asio實現一個簡單的服務端程序 399
16.5 C++11結閤asio實現一個簡單的客戶端程序 405
16.6 TCP粘包問題的解決 408
16.7 總結 413
參考文獻 414
· · · · · · (收起)

讀後感

評分

不能说这本说没价值,但是对我来说是没有价值的,因为书里面讲的我都熟,所以,对我个人来说,对本书的评价是:垃圾! 书中好多印刷的问题,连很多实例代码都有错误,后面的几个应用也是然并卵,感觉就像是作者觉得我这些“高深的技术”我要把它们分享出来。 分享可以,你用不...

評分

大家好,我是书的作者,如果大家有什么意见或建议欢迎提出来,我会及时回应,本书的勘误表在我的博客上:http://www.cnblogs.com/qicosmos/p/4562174.html 关于读者风声的评论,其实赋值函数那里是没问题的,右值版本本来就不需要delete,只是将资源“转移”,左值引用版本的不...  

評分

大家好,我是书的作者,如果大家有什么意见或建议欢迎提出来,我会及时回应,本书的勘误表在我的博客上:http://www.cnblogs.com/qicosmos/p/4562174.html 关于读者风声的评论,其实赋值函数那里是没问题的,右值版本本来就不需要delete,只是将资源“转移”,左值引用版本的不...  

評分

不能说这本说没价值,但是对我来说是没有价值的,因为书里面讲的我都熟,所以,对我个人来说,对本书的评价是:垃圾! 书中好多印刷的问题,连很多实例代码都有错误,后面的几个应用也是然并卵,感觉就像是作者觉得我这些“高深的技术”我要把它们分享出来。 分享可以,你用不...

評分

大家好,我是书的作者,如果大家有什么意见或建议欢迎提出来,我会及时回应,本书的勘误表在我的博客上:http://www.cnblogs.com/qicosmos/p/4562174.html 关于读者风声的评论,其实赋值函数那里是没问题的,右值版本本来就不需要delete,只是将资源“转移”,左值引用版本的不...  

用戶評價

评分

看的時候一直被shock,豪爽豪爽

评分

清楚明白的講解瞭C++11的一些新特性的用法,第二部分的工程案例也很不錯,值得推薦的一本好書。

评分

前半部分總結得不錯,後麵工程實踐有點toy,略過

评分

其實是在作者博客上收益菲淺,準備特買書支持一下

评分

錯誤太多瞭真的是,作者沒有一點責任心

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有