C/C++簡明雙鏈教程
李昕 吳春雷 郭磊
相關主題
商品描述
目錄大綱
目 錄
第1章 學習準備 / 1
1.1 教程特色 / 1
1.1.1 雙鏈知識網絡 / 1
1.1.2 面向OJ系統 / 1
1.1.3 簡明原則 / 2
1.1.4 易用原則 / 2
1.2 電腦基本原理 / 2
1.2.1 運算器基本原理 / 3
1.2.2 程序執行和內存管理基本原理 / 4
1.3 C++程序設計 / 8
1.3.1 C++程序基本結構 / 8
1.3.2 C++程序的編譯與運行 / 8
1.4 IDE的使用 / 9
1.4.1 CodeBlocks新建項目 / 10
1.4.2 CodeBlocks調試基礎 / 13
1.4.3 CodeBlocks常用功能 / 15
1.5 在線評測系統 / 16
1.5.1 PTA / 16
1.5.2 其他OJ / 17
第2章 程序設計基礎 / 19
2.1 數據類型 / 19
2.1.1 常見數據類型 / 19
2.1.2 轉義字符 / 21
2.1.3 標識符 / 21
2.1.4 C語言的輸出方式 / 21
2.2 整型 / 23
2.2.1 整型的數值範圍 / 23
2.2.2 整數N進制轉十進制 / 26
2.2.3 整數十進制轉換為N進制 / 27
2.3 浮點型 / 27
2.3.1 浮點數的內存表示 / 27
2.3.2 純小數十進制轉換為二進制 / 29
2.4 其他數據類型 / 30
2.4.1 字符 / 30
2.4.2 字符串 / 34
2.4.3 布爾型 / 35
2.5 數據類型轉換 / 36
2.5.1 隱式類型轉換 / 36
2.5.2 顯式類型轉換 / 39
2.5.3 整型提升* / 40
2.5.4 類型轉換的精度損失 / 41
2.5.5 四捨五入和趨零舍入 / 42
2.6 操作符 / 46
2.6.1 運算符 / 46
2.6.2 除法和整除 / 46
2.6.3 求模運算 / 48
2.6.4 邏輯運算符 / 49
2.6.5 自增和自減運算 / 51
2.6.6 sizeof運算符 / 52
2.6.7 位運算* / 52
2.6.8 三個層次的變量交換 / 54
2.7 獲取用戶輸入 / 56
2.7.1 整型和浮點型的cin輸入 / 56
2.7.2 字符串的輸入 / 58
2.7.3 字符的輸入 / 60
2.7.4 數字和字符的混合輸入 / 60
2.7.5 逗號分隔的數值 / 62
2.8 時間處理 / 64
2.9 常用數學函數 / 65
2.10 運算效率的底層分析* / 67
2.10.1 負數和補碼 / 67
2.10.2 整型的極限值 / 69
2.10.3 常見運算的效率分析 / 70
題單 / 70
第3章 分支與函數初步 / 72
3.1 分支結構 / 72
3.1.1 單分支控制 / 72
3.1.2 雙分支控制 / 75
3.1.3 多分支控制 / 77
3.1.4 分支嵌套 / 78
3.2 分支程序優化 / 80
3.2.1 三天打魚兩天曬網 / 80
3.2.2 蟲子吃蘋果 / 81
3.3 自定義函數 / 83
3.3.1 函數定義 / 83
3.3.2 函數執行順序 / 84
3.3.3 函數聲明 / 85
3.3.4 函數返回值 / 87
3.3.5 變量的作用域 / 88
3.3.6 參數傳遞和引用 / 90
3.3.7 函數重載 / 91
3.3.8 參數的默認值* / 93
3.4 局部變量和函數的內存模型 / 94
3.5 變量的深度理解* / 97
題單 / 98
第4章 循環 / 99
4.1 while循環 / 99
4.2 do-while循環 / 101
4.3 for循環 / 102
4.4 嵌套循環 / 105
4.4.1 嵌套循環基本方法 / 105
4.4.2 內循環變量的初始化 / 108
4.5 break和continue / 109
4.5.1 死循環與break / 109
4.5.2 循環與continue / 110
4.6 循環與遞歸 / 111
4.6.1 遞歸的演化 / 111
4.6.2 簡單遞歸 / 114
4.6.3 分類遞歸 / 116
4.7 經典循環問題 / 119
4.7.1 整數分解和倒序重組 / 119
4.7.2 素數判斷 / 119
4.7.3 窮舉法 / 121
4.7.4 對稱數判斷 / 122
4.7.5 二進制中1的個數 / 123
4.7.6 乘法的加法實現* / 125
4.8 循環與輸入 / 127
4.8.1 輸入重定向 / 127
4.8.2 數量不確定輸入 / 129
4.8.3 多級數量不確定輸入 / 130
4.9 程序優化案例 / 131
題單 / 135
第5章 數組與字符串 / 136
5.1 一維數組的定義和初始化 / 136
5.1.1 一維數組的定義 / 136
5.1.2 一維數組的初始化 / 137
5.1.3 一維數組的內存模型 / 138
5.1.4 數組的基本運算 / 139
5.1.5 數組作為函數參數 / 141
5.2 一維數組的應用 / 142
5.2.1 數組的插入與刪除 / 142
5.2.2 數組與循環的聯動 / 143
5.2.3 尺取法 / 145
5.2.4 空間換時間 / 148
5.2.5 打表法 / 151
5.2.6 排序 / 156
5.2.7 動態規劃* / 160
5.3 二維數組 / 164
5.4 C++的字符串 / 167
5.4.1 字符串的基本操作 / 167
5.4.2 字符串的長度和容量* / 170
5.4.3 字符串與整型的相互轉換 / 173
5.4.4 字符串分割 / 175
5.4.5 子串問題 / 176
5.4.6 高精度計算 / 178
5.5 C風格的字符串 / 179
5.5.1 C風格字符串的定義和初始化 / 179
5.5.2 C風格字符串的基本操作 / 180
5.5.3 C風格字符串的應用 / 184
題單 / 187
第6章 指針 / 188
6.1 指針的概念與指針變量的定義 / 188
6.1.1 指針與指針變量 / 188
6.1.2 指針變量的定義 / 189
6.1.3 指針的兩個“值” / 190
6.1.4 強大的指針 / 191
6.2 數組與指針 / 192
6.2.1 一維數組與指針 / 192
6.2.2 二維數組與指針 / 196
6.2.3 二維數組與一維數組 / 198
6.2.4 數組作為函數參數 / 199
6.2.5 C風格字符串與指針 / 200
6.3 堆內存與動態空間分配* / 202
題單 / 204
第7章 面向對象 / 205
7.1 類和對象 / 205
7.2 動態對象和this指針 / 207
7.3 動態屬性和析構函數 / 209
7.4 封裝 / 210
7.5 繼承 / 211
7.6 多態 / 213
7.7 操作符重載 / 216
7.8 靜態屬性 / 217
7.9 綜合練習——構建鏈表 / 219
題單 / 223
第8章 模板和容器 / 224
8.1 泛型編程 / 224
8.1.1 模板函數 / 224
8.1.2 模板類* / 226
8.2 STL容器 / 227
8.2.1 容器的分類 / 228
8.2.2 迭代器 / 230
8.3 向量(vector) / 232
8.3.1 遍歷 / 232
8.3.2 向量的典型操作 / 235
8.3.3 查找重復元素 / 237
8.4 高級應用 / 238
8.4.1 降序排序 / 238
8.4.2 全部刪除指定元素 / 239
8.4.3 for_each算法* / 241
8.5 堆棧(stack) / 242
8.6 其他典型序列容器* / 244
8.6.1 雙向隊列deque / 244
8.6.2 單向隊列queue / 246
8.6.3 鏈表(list) / 247
8.7 字典 / 253
8.7.1 關聯容器字典map / 253
8.7.2 無序容器字典unordered_map / 255
8.7.3 無序容器字典unordered_set / 257
8.7.4 字典與循環的聯動 / 258
題單 / 261
附錄A 知識點匯總 / 262
附錄B C++運算符 / 274
參考文獻 / 276