第1章 類
1.1 簡介
1.2 面向對象設計的原則
1.2.1 抽象
1.2.2 封裝
1.2.3 模塊化
1.3 類和對象
1.4 構造函數(shù)和析構函數(shù)的示例
1.5 實現(xiàn)細節(jié)
1.6 模板
1.6.1 類模板
1.6.2 函數(shù)模板
1.6.3 模板的另一種選擇:void*類型
1.7 復數(shù)的抽象
1.8 改進復數(shù)類設計的建議
1.9 異常和異常處理
1.10 類的靜態(tài)(Static)成員
1.10.1 靜態(tài)數(shù)據成員
1.10.2 靜態(tài)成員函數(shù)
1.11 本章小結
1.12 練習
1.13 程序設計項目
第2章 繼承和多態(tài)性
2.1 簡介
2.2 繼承、基類和派生類
2.3 公有繼承
2.4 基類的保護成員
2.5 私有和保護繼承
2.6 多繼承
2.7 多態(tài)性和虛函數(shù)
2.8 純虛函數(shù)和抽象類
2.9 繼承和多態(tài)性在軟件工程中的含義
2.10 本章小結
2.11 練習
2.12 程序設計項目
第3章 搜索和排序
3.1 簡介
3.2 算法的概念
3.3 使用類和對象進行設計
3.4 效率問題的初步討論
3.5 有限歸納法
3.6 比較算法:大O符號
3.7 數(shù)組的搜索算法:線性(順序)搜索
3.8 線性搜索的分析
3.9 遞歸程序設計的回顧
3.10 二叉搜索
3.11 二叉搜索分析
3.12 排序算法:選擇排序和插入排序
3.13 選擇排序和插入排序的分析
3.14 快速排序和遞歸算法
3.15 快速排序
3.16 合并排序
3.17 合并排序的分析
3.18 本章小結
3.19 練習
3.20 程序設計項目
第4章 散列:標準模板庫的前奏
4.1 簡介
4.2 散列:數(shù)據存儲和檢索的有效方法
4.3 選擇合適的散列函數(shù)
4.3.1 方法1:平方取中法
4.3.2 方法2:隨機數(shù)生成器
4.3.3 方法3:折疊
4.3.4 方法4:求余數(shù)法
4.4 解決散列沖突的方法
4.5 使用存儲桶和鏈表來解決散列沖突
4.5.1 存儲桶
4.5.2 鏈接實現(xiàn):分離鏈
4.6 用類模板來實現(xiàn)散列
4.7 命名空間
4.7.1 有關命名空間的一般觀點
4.7.2 主要觀點
4.8 本章小結
4.9 練習
4.10 程序設計項目
第5章 STL中的組件概述
5.1 歷史回顧
5.2 STL及其重要性概述
5.3 容器
5.4 迭代器
5.5 迭代器的描述和分類
5.5.1 輸入迭代器
5.5.2 輸出迭代器
5.5.3 前向迭代器
5.5.4 雙向選代器
5.5.5 隨機訪問迭代器
5.5.6 流迭代器
5.6 算法
5.7 函數(shù)對象
5.8 適配器
5.8.1 容器適配器
5.8.2 迭代器適配器
5.8.3 函數(shù)適配器
5.9 本章小結
5.10 練習
5.11 程序設計項目
第6章 隊列容器
6.1 簡介
6.2 vector類模板
6.3 vector的構造函數(shù):顯式聲明
6.4 向量的其他成員函數(shù)
6.4.1 存取函數(shù)
6.4.2 修改函數(shù)
6.4.3 內存分配函數(shù)
6.4.4 比較函數(shù)
6.5 類vector的應用
6.6 雙端隊列簡介
6.7 類deque的應用:偽隨機數(shù)和隨機數(shù)
6.8 STL列表的介紹
6.9 標準類模板庫list:基本成員函數(shù)
6.9.1 構造函數(shù)、析構函數(shù)、迭代器
6.9.2 存取函數(shù)
6.9.3 修改的數(shù)
6.9.4 更多的選代器
6.9.5 比較操作
6.10 標準模板庫list:更多的專用成員函數(shù)
6.10.1 合并兩個排序列表
6.10.2 拼接兩個列表
6.10.3 倒排列表
6.10.4 排序列表
6.10.5 刪除連續(xù)的復制列表值
6.10.6 刪除列表中的值
6.11 類模板list的應用:生成奇正整數(shù)和偶正整數(shù)的隨機排序
6.12 本章小結
6.13 練習
6.14 程序設計項目
第7章 容器適配器
7.1 簡介
7.2 棧抽象
7.3 使用棧容器適配器來實現(xiàn)棧
7.4 棧ADT的應用
7.5 隊列抽象
7.6 使用STL的隊列容器適配器實現(xiàn)隊列
7.7 ADT隊列的應用
7.8 優(yōu)先隊列抽象
7.9 優(yōu)先隊列ADT的應用
7.10 本章小結
7.11 練習
7.12 程序設計項目
第8章 泛型算法
8.1 簡介
8.2 概述標準庫中的泛型算法
8.3 非變異隊列算法
8.3.1 find算法及其變種:Helper(幫助)函數(shù)
8.3.2 count算法及其變種
8.3.3 泛型算法for_each
8.3.4 比較兩個區(qū)間:<pair>模板
8.3.5 泛型算法search
8.4 變異隊列算法
8.4.1 泛型算法copy和copybackward
8.4.2 泛型算法fill和fill_n
8.4.3 generate算法
8.4.4 partition和stable_partition算法
8.4.5 random_shuffle算法
8.4.6 remove算法及其變種
8.4.7 replace算法及其變種
8.4.8 reverse和reverse_copy算法
8.4.9 rotate算法
8.4.10 泛型交換算法
8.4.11 transform算法
8.4.12 unique算法及其變種
8.5 與排序相關的算法
8.5.1 泛型算法sort、stable_sort和partial_sort
8.5.2 泛型算法nib element
8.5.3 泛型二叉搜索算法
8.5.4 合并兩個已排序隊列的算法
8.5.5 堆的泛型算法
8.6 通用數(shù)值算法
8.6.1 accumulate函數(shù)
8.6.2 內積函數(shù)
8.6.3 partial_sum算法
8.6.4 adjacent_difference算法
8.7 本章小結
8.8 練習
8.9 程序設計項目
第9章 排序關聯(lián)容器
9.1 簡介
9.2 集和多集
9.3 集操作
9.3.1 集包含
9.3.2 并集
9.3.3 交集
9.3.4 差集
9.4 二叉搜索樹和紅-黑樹的實現(xiàn)細節(jié)
9.5 映射和多重映射
9.6 應用程序
9.7 本章小結
9.8 練習
9.9 程序設計項目
附錄 局域網模擬器
A.1 介紹性的概念
A.2 基本設計成員
A.3 用戶接口
A.4 實現(xiàn)細節(jié)
A.5 典型執(zhí)行的描述
術語表