《Accelerated C++中文版 通过示例进行编程实践》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)克尼格,(美)莫欧编著;张明译
  • 出 版 社:北京:科学出版社
  • 出版年份:2012
  • ISBN:9787030341877
  • 页数:336 页
图书介绍:本书系统介绍c++程序设计,是美国斯坦福大学的经典教材。从使用c++标准库中的高级抽象开始,使读者很快掌握编程方法。每一章都有很经典独特的例子以及非常到位的讲解,覆盖了c++非常多的内容,从标准库容器、泛型算法的使用,到类的设计、泛型算法的设计,本书都进行了详细讲解。

第0章 开始 1

0.1注释 1

0.2 #include指令 2

0.3主函数main 2

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.1 while语句 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.4 students.erase(students.begin()+i)的含义 83

5.3用迭代器代替索引 83

5.4重新思考数据结构以实现更好的性能 85

5.5 list类型 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查找URL 107

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.1 Student_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.4 Student_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.4 main函数的参数 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.1 Vec类 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.3 Str操作 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.2 Pic_base类 282

15.1.3派生类 284

15.1.4复制控制 287

15.2实现 288

15.2.1实现用户接口 288

15.2.2 String_Pic类 291

15.2.3补齐输出结果 292

15.2.4 VCat_Pic类 293

15.2.5 HCat_Pic类 294

15.2.6 Frame_Pic类 295

15.2.7不要忘记友元类声明 296

15.3小结 298

练习 299

第16章 学习C++的后续方法 301

16.1利用已经掌握的知识 301

16.2学习更多的知识 303

练习 304

附录A C++语法细节 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