目 錄
前言 關於本書
*1 部分C++11 基礎 *1 章C++11 簡單入門 2 11 從“Hello world ”開始2
12 變量 3
13 算術類型 4
131 整型 4
132 浮點型4
133 字符 4
134 布爾型5
135 字面值常量5
14 運算符 6
141 算術運算符6
142 遞增和遞減運算符6
143 邏輯運算符和關繫運算符7
144 條件運算符7
145 位運算符8
146 賦值運算符和復合賦值運算符 9
147 代用運算符9
15 控制流 9
151 if 語句 9
152 while 語句10
153 do-while 語句 11
154 for 語句11
155 break 語句和continue 語句 12
156 goto 語句13
16 C++的輸入輸出流 14
161 用cin 來輸入15
162 用cout 來輸出16
163 優化cin/cout 的方法 19
17 C 語言的輸入輸出函數 20
171 scanf 20
172 printf21
18 算術類型的類型轉換23
181 算術類型的隱式類型轉換24
182 算術類型的顯式類型轉換24
19 算術類型數據運算時可能出現的錯誤 25
191 整型數據的數據溢出錯誤25
192 浮點數類型的相等性比較錯誤 26
110 例題剖析27
111 例題與習題34 *2 章C++11 程序設計 35
21 引用 35
211 引用的基本概念35
212 拷貝賦值與引用賦值36
22 指針 37 VIII 23 函數 39
231 函數基礎39
232 傳值調用與傳引用調用41
233 指針做函數形參43
234 函數重載45
235 默認參數46
236 C++標準庫中的常用數學函數46
24 內置數組48
241 一維數組48
242 數組與指針51
243 二維數組52
244 多維數組52
245 數組做函數形參52
25 字符串(1):string54
251 string 的初始化54
252 string 的輸入與輸出55
253 字典序比較58
254 string 中內置的字符串操作59
255 C++標準庫中的常用字符處理函數60
256 例題剖析60
26 字符串(2):字符數組64
261 字符數組的初始化和存儲方法 64
262 字符數組的輸入與輸出64
263 cstring 頭文件中處理字符數組的函數 66
27 C++語法補充 67
271 類型別名67
272 const 限定符 67
273 auto 類型說明符68
目 錄 274 範圍for 語句 69
28 類和對像72
281 類的定義和實例化72
282 構造函數73
283 成員函數74
29 再談變量77
291 全局變量和局部變量77
292 全局區、棧區、堆區78
293 變量的默認初始化、值初始化 81
294 注意控制數組和容器的大小 83
295 再談引用83
210 例題剖析85
211 例題與習題90
*2 部分C++11 標準庫簡介第3 章準備知識93 31 復雜度 93
311 時間復雜度93
312 空間復雜度97
32 迭代器 98
321 begin 成員和end 成員 98
322 迭代器運算符98
323 迭代器操作99
324 迭代器的類型100
325 迭代器範圍100
326 反向迭代器101
33 pair 102
34 tuple 103 第4 章順序容器105
41 順序容器概覽105
42 順序容器對像的定義和初始化105
43 順序容器的大小操作和賦值運算 106
44素106
45素107
46素108
47 vector 、string 、array 、deque 迭代器的其他操作 109
48 例題剖析110
49 再談string 118
491 構造string 的其他方法118
492 修改string 的其他方法119
493 string 搜索操作119
數值轉換120 stringstream :按任意字符分割字符串 121 例題剖析122 例題與習題131 泛型算法133 泛型算法概覽133 自定義排序134 比較規則代碼的編寫135 重載小於運算符137 比較函數140 函數對像/仿函數141 與內置小於運算符相反的排序 145 排名147
527 總結147
528 例題剖析148
53 泛型算法大觀園155
531 隻讀算法156
532 寫算法157
533 排序與劃分算法159
534 在有序序列上的泛型算法161
535 堆操作算法162
536 排列算法162
537 *大值*小值算法163
538 數值算法163
54 例題剖析165
55 list 容器特有的算法174
56 例題與習題179 第6 章容器適配器181
61 容器適配器概覽181
62 stack 181
63 queue 184
64 priority_queue 187
65 例題 188 第7 章關聯容器189
71 關聯容器概覽189
72 關聯容器對像的定義和初始化189
73 關聯容器的共有操作190
74 map 和unordered_map 的下標操作 192
75 有序關聯容器的二分查找操作192
76 關聯容器對關鍵字類型的要求193
目 錄 77 自定義有序關聯容器和priority_queue 的關素比較方法193
771 重載小於運算符194
772 函數對像/仿函數195
78 自定義無序關聯容器的關鍵字哈希函數 197
79 例題剖析197
710 例題與習題204 第8 章C++標準庫補充與總結205
81 bitset 205
811 bitset 對像的定義和初始化 205
812 bitset 的操作 206
813 bitset 實現整數的二進制表示 208
82 function 類型和函數式編程210
83 命名衝突214
84 容器的關繫運算215
85 容器選擇建議215
86 泛型算法使用建議216
第3 部分算法基礎第9 章算法初步218 91 圖形輸出218
92 暴力枚舉225
93 打表 230
94 進制轉換233
95 二分查找240
951 在升序序列中二分查找某數x 的位置 240
952 在非降序序列中二分查找*一個大於等於x 的位置 241
953 C++標準庫中的二分查找函數243
954 例題剖析243
96 貪心 247
97 遞歸與分治252
971 遞歸252
972 分治254
98 two pointers256
99 例題與習題258 *10 章數學基礎260
101 簡單數學問題260
102 規律推導262
103 素數 265
1031 判斷一個正整數n 是不是素數 266
1032 獲取2~n 以內的素數表269
1033 將正整數n 進行質因子分解 272
歐幾裡得算法274
分數 275 分數的表示275 分數的輸入276 分數的化簡276 分數的四則運算276 分數的輸出278 代碼模板279
大整數運算283 例題與習題290
線性表和散列表292 順序表292
112 鏈表 295
1121 單鏈表的基本概念295
1122 單鏈表的基本操作296
1123 靜態鏈表298
1124 雙向鏈表299
1125 例題剖析300
113 散列表304
1131 引論305
1132 散列函數和衝突306
1133 自定義無序關聯容器的關鍵字哈希函數 310
1134 例題剖析312
114 例題與習題338 *12 章樹 340
121 樹與樹的遍歷340
1211 樹的定義和基本概念340
1212 樹的深度優先遍歷342
1213 樹的廣度優先遍歷343
1214 樹的靜態寫法345
1215 例題剖析346
122 二叉樹與二叉樹的遍歷354
1221 二叉樹的定義354
1222 二叉樹的遍歷355
1223 二叉樹的靜態寫法356
1224 例題剖析358
123 完全二叉樹361
124 二叉查找樹365
125 根據遍歷序列創建二叉樹的問題 368
目 錄 1251 給出中根遍歷序列和先根遍歷序列,創建二叉樹 368
1252 給出先根遍歷序列,創建二叉查找樹 374
1253 給出中根遍歷序列,創建形態固定的二叉查找樹 377
126 *近公共祖先問題380
1261 普通二叉樹的*近公共祖先問題 381
1262 二叉查找樹的*近公共祖先問題 387
127 並查集391
128 例題與習題397 *13 章排序算法398
131 插入類排序:插入排序、希爾排序 398
1311 插入排序398
1312 希爾排序399
132 選擇類排序:選擇排序、堆排序 400 XIII
1321 選擇排序401
1322 堆排序402
133 交換類排序:冒泡排序、快速排序 407
1331 冒泡排序407
1332 快速排序408
134 歸並類排序:歸並排序411
135 例題剖析413
136 例題 417 *14 章圖 418
141 圖的基本概念和存儲方法418
1411 圖的基本概念418
1412 圖的存儲方法419
142 圖的遍歷420
1421 深度優先遍歷420
1422 廣度優先遍歷422
143 無向圖的連通分量分解問題424
144 拓撲排序427
145 *短路徑問題430
1451 針對無權圖單源*短路徑的BFS 算法 431
1452 針對正權圖單源*短路徑的Dijkstra 算法 434
146 *小生成樹439
147 復雜問題的判定443
148 例題與習題448
第5 部分C++標準庫進階*15 章復雜模擬451 151 成績統計451
152 記錄匹配459
153 與優先級相關的模擬465
154 字符串處理進階——正則表達式479
1541 正則表達式匹配符號簡介479
1542 C++的正則表達式庫——regex 481
1543 C++正則表達式的匹配、查找、替換481
1544 regex 迭代器492
155 例題和習題495 *16 章C++14 和C++17497
161 C++14 497
1611 泛型的lambda 497
1612 lambda 表達式的初始化捕獲 498
1613 函數的返回類型自動推導499
162 C++17 500
1621 結構化綁定500
1622 gcd 和lcm502
1623 類模板參數推導503
1624 if 語句的初始化器 504
1625 optional 505 參考文獻 507
|