《Accelerated C++中文版》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)Andrew Koenig,靳志伟译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:7111224043
  • 页数:293 页
图书介绍:本书讲解了C++编程的高级技巧。

第0章 入门 1

0.1注释 1

0.2#include指令 1

0.3main函数 2

0.4花括号 2

0.5使用标准库来输出 2

0.6return语句 3

0.7稍微深入分析“Helloworld!”程序 3

小结 4

练习 6

第1章 使用字符串 7

1.1输入 7

1.2为名字装框输出 9

小结 12

练习 12

第2章 循环和计数 4

2.1问题 14

2.2程序的总体结构 14

2.3输出任意多行 15

2.3.1while语句 16

2.3.2设计一个while语句 16

2.4输出一行 18

2.4.1输出边界字符 19

2.4.2输出非边界字符 21

2.5完整的框架程序 22

2.5.1简化重复的std:: 22

2.5.2使用for语句来简化 23

2.5.3精简测试 24

2.5.4整合结果 24

2.6计数 25

小结 27

练习 29

第3章 使用批量数据 30

3.1计算学生成绩 30

3.1.1检测输入的结束 33

3.1.2循环不变式 34

3.2使用中值取代平均值 35

3.2.1用vector保存数据集 35

3.2.2生成输出 37

3.2.3值得注意的地方 40

小结 41

练习 42

第4章 组织程序和数据 43

4.1组织计算 43

4.1.1查找中值 44

4.1.2重新实现计算最终成绩的方法 45

4.1.3读取家庭作业成绩 47

4.1.43种函数形参 49

4.1.5使用函数来计算学生的成绩 50

4.2组织数据 52

4.2.1把一个学生的所有数据集合起来 52

4.2.2处理学生记录 53

4.2.3生成报表 55

4.3把各部分程序连接起来 56

4.4把计算成绩程序分块 58

4.5修改后的计算成绩程序 60

小结 61

练习 62

第5章 使用序列式容器并分析字符串 64

5.1把学生分类 64

5.1.1就地删除元素 65

5.1.2顺序访问和随机访问 67

5.2迭代器 67

5.2.1迭代器类型 68

5.2.2迭代器操作 69

5.2.3一些语法知识 70

5.2.4students.erase(students.begin()+i)的含义 70

5.3使用迭代器取代索引 70

5.4重新设计数据结构以获取更好的性能 72

5.5list类型 72

5.5.1重要的区别 73

5.5.2为什么要如此麻烦呢 74

5.6剖析字符串 74

5.7检测split函数 77

5.8连接字符串 78

5.8.1为一个图案装框 78

5.8.2纵向连接 80

5.8.3横向连接 81

小结 82

练习 85

第6章 使用库算法 87

6.1分析字符串 87

6.1.1分割字符串的另一种方式 89

6.1.2回文 90

6.1.3查找URL 91

6.2比较计算学生成绩的方案 95

6.2.1处理学生记录 95

6.2.2分析成绩 96

6.2.3基于家庭作业成绩的平均值来计算最终成绩 99

6.2.4已提交的家庭作业成绩的中值 100

6.3把学生分类并且重新解决一个问题 101

6.3.1访问两次的解决方案 101

6.3.2一次访问的解决方案 103

6.4算法、容器和迭代器 104

小结 104

练习 106

第7章 使用关联式容器 107

7.1支持高效查找的容器 107

7.2字数统计程序 108

7.3生成一个交叉引用表 109

7.4生成句子 112

7.4.1表示规则 113

7.4.2读取语法 114

7.4.3生成一个随机的句子 115

7.4.4选取一个随机元素 117

7.5注意性能 119

小结 119

练习 120

第8章 编写泛型函数 122

8.1什么是泛型函数 122

8.1.1未知类型的中值 123

8.1.2模板实例化 124

8.1.3泛型函数和类型 125

8.2数据结构的独立 126

8.2.1算法和迭代器 127

8.2.2顺序只读访问 127

8.2.3顺序只写访问 128

8.2.4顺序读写访问 129

8.2.5可逆访问 130

8.2.6随机访问 130

8.2.7迭代器区间和越界值 131

8.3输入和输出迭代器 132

8.4使用迭代器来提高灵活性 133

小结 134

练习 135

第9章 定义新类型 137

9.1回顾Student-info 137

9.2类 138

9.2.1成员函数 138

9.2.2非成员函数 141

9.3保护 141

9.3.1访问器函数 142

9.3.2检测对象是否为空 144

9.4Student-info类 144

9.5构造函数 145

9.5.1默认构造函数 146

9.5.2带有参数的构造函数 147

9.6使用Student-info类 147

小结 148

练习 149

第10章 管理内存和底层数据结构 150

10.1指针和数组 150

10.1.1指针 151

10.1.2指向函数的指针 152

10.1.3数组 154

10.1.4指针的算术运算 155

10.1.5索引 156

10.1.6数组初始化 156

10.2再看字符串直接量 157

10.3初始化字符指针数组 158

10.4main函数的参数 159

10.5读写文件 160

10.5.1标准错误流 160

10.5.2处理多个输入和输出文件 160

10.63种内存管理 162

10.6.1为一个对象分配和释放内存 163

10.6.2为数组分配并释放内存 163

小结 165

练习 166

第11章 定义抽象数据类型 167

11.1Vec类 167

11.2实现Vec类 167

11.2.1内存分配 169

11.2.2构造函数 169

11.2.3类型定义 170

11.2.4索引和大小 172

11.2.5返回迭代器的操作 173

11.3复制控制 174

11.31复制构造函数 174

11.3.2赋值 175

11.3.3赋值不是初始化 177

11.3.4析构函数 179

11.3.5默认操作 179

11.3.6三者缺一不可的规则 180

11.4动态Vec对象 181

11.5灵活的内存管理 182

小结 187

练习 188

第12章 使类的对象像数值一样工作 189

12.1一个简单的string类 189

12.2自动转换 191

12.3Str类的操作 192

12.3.1输入-输出操作符 192

12.3.2友元 193

12.3.3其他二元操作符 195

12.3.4混合类型的表达式 196

12.3.5定义二元操作符 197

12.4某些类型转换是危险的 198

12.5类型转换操作符 199

12.6类型转换和内存管理 200

小结 202

练习 202

第13章 使用继承和动态绑定 204

13.1继承 204

13.1.1保护标签 205

13.1.2操作 206

13.1.3继承和构造函数 207

13.2多态和虚函数 209

13.2.1不知道对象类型的情况下取得对象的值 210

13.2.2动态绑定 211

13.2.3回顾 212

13.3使用继承来解决我们的问题 213

13.3.1包含(实质上)未知类型的容器 215

13.3.2虚析构函数 217

13.4一个简单的句柄类 218

13.4.1读取句柄 220

13.4.2复制句柄对象 221

13.5使用句柄类 222

13.6精妙之处 223

13.6.1继承和容器 223

13.6.2我们需要的是哪个函数 224

小结 225

练习 226

第14章 几乎自动的管理内存 228

14.1复制所指向的对象的句柄 228

14.1.1一个泛型句柄类 229

14.1.2使用一个泛型句柄 232

14.2引用计数句柄 234

14.3可以决定何时共享数据的句柄 236

14.4可控制句柄上的一个改进 238

14.4.1复制不能控制的类型 239

14.4.2什么时候需要进行复制 241

小结 241

练习 241

第15章 再看字符图形问题 242

15.1设计 242

15.1.1使用继承来模拟这种结构 243

15.1.2Pic-base类 245

15.1.3派生类 247

15.1.4复制控制 249

15.2实现 250

15.2.1实现用户接口 250

15.2.2String-Pic类 252

15.2.3填充输出以补齐 254

15.2.4VCat-Pic类 255

15.2.5HCat-Pic类 256

15.2.6Frame-Pic类 256

15.2.7不要忘记友元声明 257

小结 259

练习 260

第16章 如何学习C++ 261

16.1使用已经掌握的知识 261

16.2学习更多的知识 263

练习 263

附录A语言细节 264

附录B标准库概要 279