会员   密码 您忘记密码了吗?
1,574,865 本书已上架      购物流程 | 常见问题 | 联系我们 | 关于我们 | 用户协议

有店 App


当前分类

商品分类

浏览历史

当前位置: 首页 > 简体书 > C++標準範本庫編程實戰
C++標準範本庫編程實戰
上一张
下一张
prev next

C++標準範本庫編程實戰

作者: (美)愛弗·霍頓
出版社: 清華大學出版社
出版日期: 2017-01-01
商品库存: 点击查询库存
以上库存为海外库存属流动性。
可选择“空运”或“海运”配送,空运费每件商品是RM14。
配送时间:空运约8~12个工作天,海运约30个工作天。
(以上预计配送时间不包括出版社库存不足需调货及尚未出版的新品)
定价:   NT768.00
市场价格: RM138.07
本店售价: RM122.88
促销价: RM121.50
剩余时间: 请稍等, 正在载入中...
购买数量:
collect Add to cart Add booking
详细介绍 商品属性 商品标记
內容簡介

本書介紹新的C++14標準的API、庫和擴展,以及如何將它們運用到C++14程式中。
  
在本書中,作者IvorHorton則闡述了什麼是STL,以及如何將它們應用到程式中。我們將學習如何使用容器、反覆運算器,以及如何定義、創建和應用演算法。此外,還將學習函數物件和適配器,以及它們的用法。
  
閱讀完本書之後,你將能夠瞭解如何擴展STL,如何定義自訂類型的C++元件,你還將能夠定義既滿足C++STL要求又遵從常見的設計模式和好實踐的自訂類型。
  
標準庫是C++標準的一個基本部分,它為C++tt序員提供了一套全面而又高效的工具,還提供了一些適用於多種類型程式的可重用元件。


作者介紹

Ivor Horton,畢業於數學系,卻因嚮往IT工作輕鬆而收入豐厚,因而涉足IT領域。儘管現實情況常常是工作辛苦而收入卻相對不高,但他仍堅持從事計算機工作至今。在不同的時期,他從事過的工作包括程式設計、系統設計、顧問以及管理和實現相當複雜的專案。

Ivor在電腦系統的設計和實現方面,擁有多年的工作經驗,這些系統應用於多種行業的工程設計和製造運營。他不僅能運用多種程式設計語言開發特殊用途的應用程式,而且還為科研人員和工程人員提供教學,以幫助他們完成這類工作,在這些方面他都擁有相當豐富的經驗。
 
多年來他一直從事程式設計方面書籍的撰寫工作,目前出版的著作有C、C++和Java等方面的教程。目前,他不忙於寫書或給他人提供諮詢服務時,會釣魚、旅遊和盡情地享受生活。


目錄

第1章 STL介紹 1
1.1 基本思想 2
1.2 範本 2
1.3 容器 6
1.4 反覆運算器 7
1.4.1 獲取反覆運算器 8
1.4.2 反覆運算器的類別 8
1.4.3 流反覆運算器 11
1.4.4 反覆運算器適配器 12
1.5 反覆運算器上的運算 14
1.6 智能指針 14
1.6.1 使用unique_ptr指針 16
1.6.2 使用shared_ptr指針 18
1.6.3 weak_ptr指針 21
1.7 算法 22
1.8 將函數作為實參傳入 23
1.8.1 函數物件 23
1.8.2 lambda運算式 24
1.9 小結 28
練習 29

第2章 使用序列容器 31
2.1 序列容器 31
2.2 使用array容器 35
2.2.1 訪問元素 36
2.2.2 使用陣列容器的反覆運算器 39
2.2.3 比較陣列容器 41
2.3 使用vector容器 42
2.3.1 創建vector容器 42
2.3.2 vector的容量和大小 44
2.3.3 訪問元素 45
2.3.4 使用vector容器的反覆運算器 46
2.3.5 向vector容器中添加元素 49
2.3.6 刪除元素 53
2.3.7 vector[bool]容器 57
2.4 使用deque容器 58
2.4.1 生成deque容器 58
2.4.2 訪問元素 59
2.4.3 添加和移除元素 59
2.4.4 替換deque容器中的內容 60
2.5 使用list容器 62
2.5.1 生成list容器 63
2.5.2 添加元素 63
2.5.3 移除元素 65
2.5.4 排序和合併元素 66
2.5.5 訪問元素 69
2.6 使用forward_list容器 71
2.7 自訂反覆運算器 76
2.7.1 STL反覆運算器的要求 76
2.7.2 走進STL 77
2.8 本章小結 86
練習 87

第3章 容器適配器 89
3.1 什麼是容器適配器 89
3.2 創建和使用stack容器適配器 90
3.3 創建和使用queue容器適配器 95
3.3.1 queue操作 96
3.3.2 queue容器的實際使用 97
3.4 使用priority_queue容器適配器 102
3.4.1 創建priority_queue 103
3.4.2 priority_queue操作 104
3.5 堆 107
3.5.1 創建堆 108
3.5.2 堆操作 110
3.6 在容器中保存指針 116
3.6.1 在序列容器中保存指針 116
3.6.2 在優先順序佇列中存儲指針 123
3.6.3 指針的堆 125
3.6.4 基類指針的容器 125
3.6.5 對指標序列應用演算法 129
3.7 本章小結 130
練習 130

第4章 map容器 131
4.1 map容器介紹 131
4.2 map容器的用法 132
4.2.1 創建map容器 134
4.2.2 map元素的插入 135
4.2.3 在map中構造元素 142
4.2.4 訪問map中的元素 142
4.2.5 刪除元素 152
4.3 pair和tuple的用法 152
4.3.1 pair的操作 153
4.3.2 tuple的操作 156
4.3.3 tuples和 pairs實戰 158
4.4 multimap容器的用法 163
4.5 改變比較函數 168
4.5.1 greater對象的用法 168
4.5.2 用自訂的函數物件來比較元素 169
4.6 雜湊 170
4.7 unordered_map容器的用法 173
4.7.1 生成和管理unordered_map容器 175
4.7.2 調整格子個數 177
4.7.3 插入元素 178
4.7.4 訪問元素 179
4.7.5 移除元素 180
4.7.6 訪問格子 180
4.8 unordered_multimap容器的用法 184
4.9 本章小結 192
練習 193

第5章 set的使用 195
5.1 理解set容器 195
5.2 使用set容器 196
5.2.1 添加和移除元素 197
5.2.2 訪問元素 199
5.2.3 使用set 199
5.2.4 set反覆運算器 209
5.2.5 在set容器中保存指針 209
5.3 使用multiset容器 215
5.3.1 保存派生類對象的指標 217
5.3.2 定義容器 219
5.3.3 定義示例的main()函數 220
5.4 unordered_set容器 223
5.4.1 添加元素 224
5.4.2 檢索元素 225
5.4.3 刪除元素 226
5.4.4 創建格子列表 227
5.5 使用unordered_multiset容器 228
5.6 集合運算 233
5.6.1 set_union()演算法 234
5.6.2 set_intersection()演算法 235
5.6.3 set_difference()演算法 236
5.6.4 set_symmetric_difference()算法 236
5.6.5 includes()演算法 236
5.6.6 集合運算的運用 238
5.7 本章小結 240
練習 240

第6章 排序、合併、搜索和分區 243
6.1 序列排序 243
6.1.1 排序以及相等元素的順序 246
6.1.2 部分排序 247
6.1.3 測試排序序列 250
6.2 合併序列 251
6.3 搜索序列 260
6.3.1 在序列中查找元素 260
6.3.2 在序列中查找任意範圍的元素 262
6.3.3 在序列中查找多個元素 264
6.4 分區序列 268
6.4.1 partition_copy()演算法 270
6.4.2 partition_point()演算法 271
6.5 二分查找演算法 272
6.5.1 binary_search()演算法 273
6.5.2 lower_bound()演算法 274
6.5.3 equal_range()演算法 274
6.6 本章小結 277
練習 278

第7章 更多的演算法 279
7.1 檢查元素的屬性 279
7.2 序列的比較 281
7.2.1 查找序列的不同之處 283
7.2.2 按字典序比較序列 286
7.2.3 序列的排列 287
7.3 複製序列 292
7.3.1 複製一定數目的元素 292
7.3.2 條件複製 292
7.4 複製和反向元素順序 296
7.5 複製一個刪除相鄰重複元素的序列 297
7.6 從序列中移除相鄰的重複元素 298
7.7 旋轉序列 299
7.8 移動序列 301
7.9 從序列中移除元素 303
7.10 設置和修改序列中的元素 305
7.10.1 用函數生成元素的值 306
7.10.2 轉換序列 307
7.10.3 替換序列中的元素 310
7.11 演算法的應用 311
7.12 本章小結 315
練習 320

第8章 生成亂數 321
8.1 什麼是亂數 321
8.2 概率、分佈以及熵 322
8.2.1 什麼是概率 322
8.2.2 什麼是分佈 322
8.2.3 什麼是熵 324
8.3 用STL生成亂數 324
8.3.1 生成亂數的種子 325
8.3.2 獲取隨機種子 325
8.3.3 種子序列 326
8.4 分佈類 329
8.4.1 默認亂數產生器 329
8.4.2 創建分佈物件 330
8.4.3 均勻分佈 331
8.4.4 正態分佈 342
8.4.5 對數分佈 347
8.4.6 其他和正態分佈相關的分佈 350
8.4.7 抽樣分佈 351
8.4.8 其他分佈 365
8.5 亂數產生引擎和生成器 370
8.5.1 線性同餘引擎 371
8.5.2 馬特賽特旋轉演算法引擎 372
8.5.3 帶進位元減法引擎 372
8.6 重組元素序列 373
8.7 本章小結 374
練習 375

第9章 流操作 377
9.1 流反覆運算器 377
9.1.1 輸入流反覆運算器 377
9.1.2 輸出流反覆運算器 381
9.2 重載插入和提取運算子 383
9.3 對檔使用流反覆運算器 384
9.3.1 文件流 385
9.3.2 檔流類的範本 385
9.3.3 用流反覆運算器進行檔輸入 386
9.3.4 用流反覆運算器來反復讀文件 388
9.3.5 用流反覆運算器輸出檔 390
9.4 流反覆運算器和演算法 391
9.5 流緩衝區反覆運算器 395
9.5.1 輸入流緩衝區反覆運算器 395
9.5.2 輸出流緩衝區反覆運算器 396
9.5.3 對檔流使用輸出流緩衝區反覆運算器 397
9.6 string流、流,以及流緩衝區反覆運算器 399
9.7 本章小結 402
練習 402

第10章 使用數值、時間和複數 403
10.1 數值計算 403
10.2 數值演算法 403
10.2.1 保存序列中的增量值 404
10.2.2 求序列的和 405
10.2.3 內積 406
10.2.4 相鄰差 411
10.2.5 部分和 411
10.2.6 極大值和極小值 413
10.3 保存和處理數值 414
10.3.1 valarray物件的基本操作 415
10.3.2 一元運算子 418
10.3.3 用於valarray物件的複合設定運算子 419
10.3.4 valarray對象的二元運算 420
10.3.5 訪問valarray物件中的元素 421
10.3.6 多個切片 436
10.3.7 選擇多行或多列 438
10.3.8 使用gslice物件 439
10.3.9 選擇元素的任意子集 440
10.3.10 有條件地選擇元素 441
10.3.11 有理數演算法 442
10.4 時序範本 445
10.4.1 定義duration 446
10.4.2 時鐘和時間點 451
10.5 複數 458
10.5.1 生成表示複數的物件 459
10.5.2 複數的運算 460
10.5.3 複數上的比較和其他運算 460
10.5.4 一個使用複數的簡單示例 461
10.6 本章小結 463
練習 464