Accelerated C++中文版通過示例進行編程實踐

內容介紹

《Accelerated C++中文版通過示例進行編程實踐》系統介紹C++程式設計,是美國史丹福大學的經典教材。從使用C++標準庫中的高級抽象開始,使讀者很快掌握編程方法。每一章都有很經典獨特的例子以及非常到位的講解,覆蓋了C++更多領域的內容,從標準庫容器、泛型算法的使用,到類的設計、泛型算法的設計,《Accelerated C++中文版通過示例進行編程實踐》都進行了詳細的講解。《Accelerated C++中文版通過示例進行編程實踐》作者(克尼格)有豐富的C++開發、研究和教學經驗,內容由淺入深,講解精煉巧妙。無論是剛入門的新手還是有經驗的C++開發人員都能從《Accelerated C++中文版通過示例進行編程實踐》中受益。

作者介紹

"Andrew Koenig和Barbara E. Moo堪稱C++研究領域的“第一神仙眷侶”,他們不光有著多年的C++開發、研究和教學經驗,而且親身參與了C++的演化和變革,是對C++的變化和發展起到重要影響的人。
Andrew Koenig,AT&T大規模程式研發部(前貝爾實驗室)成員,同時也是C++標準委員會項目編輯。他有30多年編程經驗,15年C++開發經驗,已發表150多篇與C++有關的論文,應邀在世界各地多次演講。曾編著C Traps and Pitfalls一書,並與妻子合著Ruminations on C++。
Barbara E. Moo,獨立諮詢顧問,在軟體領域從業20多年。在AT&T工作的近15年中,參與了第一個使用C++編寫商業產品的開發項目,負責管理公司第一個C++編譯器項目,並成功指導開發了AT&T中屢獲殊榮的WorldNet Internet Service Business。曾參與編寫Ruminations on C++一書,並在世界各地進行過多次演講。"

作品目錄

"第0章 開始1
0.1注釋1
0.2#include指令2
0.3主函式main2
0.4花括弧2
0.5使用標準庫進行輸出3
0.6返回語句3
0.7進一步的深入4
0.8小結5
練習7
第1章 字元串的使用8
1.1輸入8
1.2將姓名裝框10
1.3小結13
練習15
第2章 循環與計數17
2.1問題17
2.2程式的整體結構18
2.3輸出數目未知的行18
2.3.1while語句19
2.3.2設計while語句20
2.4輸出一行22
2.4.1輸出邊界字元23
2.4.2輸出非邊界字元25
2.5完整的框架程式26
2.5.1略去重複使用的std::27
2.5.2使用for語句縮短程式27
2.5.3壓縮檢測28
2.5.4完整的框架程式29
2.6計數30
2.7小結31
練習34
第3章 使用批量數據36
3.1計算學生成績36
3.1.1檢測輸入40
3.1.2循環不變式41
3.2用中值代替平均值42
3.2.1將數據集合存儲到向量中42
3.2.2產生輸出44
3.2.3更加深入的觀察49
3.3小結50
練習51
第4章 組織程式和數據52
4.1組織計算52
4.1.1查找中值54
4.1.2重新制定計算成績的策略55
4.1.3讀家庭作業成績56
4.1.4三種函式參數59
4.1.5使用函式來計算學生的成績60
4.2組織數據62
4.2.1將一個學生的所有數據放置在一起63
4.2.2處理學生記錄63
4.2.3生成報表65
4.3將各部分代碼連線到一起67
4.4將計算成績的程式分塊69
4.5修正後的計算成績程式71
4.6小結73
練習74
第5章 使用順序容器和分析字元串76
5.1將學生進行分類76
5.1.1就地刪除元素77
5.1.2順序存取和隨機存取80
5.2疊代器80
5.2.1疊代器的類型81
5.2.2疊代器的操作82
5.2.3一些語法知識83
5.2.4students.erase(students.begin()+i)的含義83
5.3用疊代器代替索引83
5.4重新思考數據結構以實現更好的性能85
5.5list類型86
5.5.1一些重要的差別87
5.5.2一個惱人的話題88
5.6分割字元串88
5.7測試split函式91
5.8連線字元串93
5.8.1將圖案裝框93
5.8.2縱向連線95
5.8.3橫向連線95
5.9小結97
練習100
第6章 使用庫算法103
6.1分析字元串103
6.1.1實現split的另一種方法105
6.1.2回文107
6.1.3查找URL107
6.2比較計算成績的方案112
6.2.1處理學生記錄112
6.2.2分析成績113
6.2.3計算基於家庭作業平均成績的總成績117
6.2.4上交的家庭作業的中值118
6.3對學生進行分類並回顧我們的問題119
6.3.1一種兩次傳遞的解決方案119
6.3.2一種一次傳遞的解決方案121
6.4算法、容器以及疊代器122
6.5小結123
練習124
第7章 使用關聯容器126
7.1支持高效查找的容器126
7.2計算單詞數量127
7.3生成交叉引用表129
7.4生成語句132
7.4.1呈現規則134
7.4.2讀入文法134
7.4.3生成語句135
7.4.4選擇隨機元素138
7.5關於性能的一些說明140
7.6小結140
練習141
第8章 編寫泛型函式143
8.1什麼是泛型函式143
8.1.1未知類型的中值144
8.1.2模板實例化146
8.1.3泛型函式和類型146
8.2數據結構獨立性147
8.2.1算法與疊代器148
8.2.2順序唯讀訪問149
8.2.3順序只寫訪問150
8.2.4順序讀-寫訪問151
8.2.5可逆訪問152
8.2.6隨機訪問152
8.2.7疊代器區間和越界值153
8.3輸入和輸出疊代器155
8.4使用疊代器提高適應性156
8.5小結157
練習158
第9章 定義新類型160
9.1Student_info回顧160
9.2自定義類型161
9.2.1成員函式162
9.2.2非成員函式164
9.3保護164
9.3.1存取器函式166
9.3.2檢查對象是否為空167
9.4Student_info類168
9.5構造函式168
9.5.1默認構造函式170
9.5.2帶參數的構造函式171
9.6使用Student_info類171
9.7小結172
練習173
第10章 管理記憶體與低級數據結構175
10.1指針與數組175
10.1.1指針176
10.1.2指向函式的指針177
10.1.3數組180
10.1.4指針算法180
10.1.5索引181
10.1.6數組初始化182
10.2字元串字面量回顧182
10.3初始化字元串指針數組183
10.4main函式的參數185
10.5檔案讀寫186
10.5.1標準錯誤流186
10.5.2處理多個輸入/輸出檔案186
10.6記憶體管理的三種方法188
10.6.1為對象分配/釋放記憶體189
10.6.2為數組分配/釋放記憶體190
10.7小結191
練習192
第11章 定義抽象數據類型193
11.1Vec類193
11.2實現Vec類194
11.2.1記憶體分配195
11.2.2構造函式196
11.2.3類型定義197
11.2.4索引與大小198
11.2.5返回疊代器的操作200
11.3複製控制201
11.3.1複製構造函式201
11.3.2賦值運算符202
11.3.3賦值不是初始化205
11.3.4析構函式206
11.3.5默認操作207
11.3.6三位一體規則207
11.4動態的Vec類型對象208
11.5靈活的記憶體管理210
11.6小結216
練習216
第12章 使類對象獲得數值功能218
12.1一個簡單的string類219
12.2自動轉換220
12.3Str操作221
12.3.1輸入和輸出運算符222
12.3.2友元函式223
12.3.3其他二元運算符225
12.3.4混合類型表達式227
12.3.5設計二元運算符228
12.4有些轉換是危險的228
12.5類型轉換操作函式229
12.6類型轉換與記憶體管理231
12.7小結232
練習233
第13章 繼承與動態綁定的使用235
13.1繼承235
13.1.1回顧保護類型237
13.1.2操作函式237
13.1.3繼承與構造函式239
13.2多態與虛擬函式240
13.2.1在不確定對象類型時獲得對象的值242
13.2.2動態綁定243
13.2.3簡單回顧244
13.3使用繼承解決問題245
13.3.1實際類型待定的容器248
13.3.2虛擬析構函式250
13.4一個簡單的句柄類251
13.4.1讀取句柄253
13.4.2複製句柄對象254
13.5使用句柄類256
13.6微妙之處257
13.6.1繼承與容器257
13.6.2需要哪個函式258
13.7小結259
練習260
第14章 近乎自動地管理記憶體262
14.1用於複製對象的句柄263
14.1.1通用句柄類263
14.1.2使用通用句柄266
14.2引用計數句柄269
14.3可以讓您決定何時共享數據的句柄272
14.4可控句柄的一個改進274
14.4.1複製我們無法控制的類型275
14.4.2複製在何時才是必要的277
14.5小結277
練習278
第15章 再探字元圖形279
15.1設計279
15.1.1使用繼承來模擬結構280
15.1.2Pic_base類282
15.1.3派生類284
15.1.4複製控制287
15.2實現288
15.2.1實現用戶接口288
15.2.2String_Pic類291
15.2.3補齊輸出結果292
15.2.4VCat_Pic類293
15.2.5HCat_Pic類294
15.2.6Frame_Pic類295
15.2.7不要忘記友元類聲明296
15.3小結298
練習299
第16章 學習C++的後續方法301
16.1利用已經掌握的知識301
16.2學習更多的知識303
練習304
附錄AC++語法細節305
A.1聲明305
A.1.1指定說明307
A.1.2聲明符308
A.2類型310
A.2.1整數類型310
A.2.2浮點類型313
A.2.3常量表達式314
A.2.4類型轉換314
A.2.5枚舉類型315
A.2.6重載316
A.3表達式316
A.4語句319
附錄B標準庫一覽322
B.1輸入-輸出323
B.2容器和疊代器325
B.2.1共有的容器操作325
B.2.2順序容器的操作326
B.2.3其他順序操作327
B.2.4關聯容器的操作328
B.2.5疊代器(iterator)328
B.2.6向量(vector)330
B.2.7鍊表(list)331
B.2.8字元串(string)331
B.2.9對(pair)332
B.2.10圖(map)333
B.3算法333
"

熱門詞條

聯絡我們