新书推荐 | Big C++中文版(原书第3版)

新书推荐

《Big C++中文版(原书第3版)》

点击上图了解及购买

《Java核心技术》作者新作,面向C++初学者,先学习基础理论,之后通过实例逐步掌握面向对象编程思想。

内容简介

本书由经典畅销书籍《Java核心技术》的作者Cay Horstmann撰写,非常适合C++初学者和爱好者阅读,不仅能够帮助新手快速入门,掌握基础知识,而且有益于培养读者解决实际问题的思维和能力。

书中采用传统的讲授方法,首先强调控制结构、过程分解和数组算法,在较为靠前的章节中就适时地引入了对象的概念。从第9章开始,读者将动手设计和实现自定义的类。最后介绍数据结构和算法,涉及高级C++特性。

本书特色

  • 难度适中,适合自学。从C++繁杂的特性中进行精选,既涵盖大多数现代特性及程序设计的基本思想,又保持了适当的学习难度。

  • 深入浅出,阐述透彻。对于一些难以理解的内容,结合文字、图片、代码及习题等多种方式进行讲解,所有代码均可免费下载。

  • 实例学习,强调实战。共包含25个可运行的示例,通过实践帮助读者理解面向对象程序设计,从新手进阶为富有成效的程序员。

作者简介

凯•霍斯特曼(Cay Horstmann) 圣何塞州立大学计算机科学系教授,Java的倡导者,经常在开发人员会议上发表演讲。他是《Java核心技术》的作者,同时也关注Python、Scala、C++等语言,为专业程序员和计算机科学专业学生编写过数十本图书。

目录

出版者的话

译者序

前言

第1章 引言  1

1.1 何谓编程  1

1.2 计算机的组成  2

1.3 机器代码和程序设计语言  4

1.4 熟悉编程环境  5

1.5 分析第一个程序  8

1.6 错误  11

1.7 问题求解:算法设计  12

1.7.1 算法的概念  12

1.7.2 求解投资问题的算法  13

1.7.3 伪代码  14

1.7.4 从算法到程序  14

本章小结  18

复习题  19

练习题  22

编程项目  23

第2章 基本数据类型  25

2.1 变量  25

2.1.1 变量定义  25

2.1.2 数值类型  26

2.1.3 变量名  27

2.1.4 赋值语句  27

2.1.5 常量  29

2.1.6 注释  29

2.2 算术运算  33

2.2.1 算术运算符  33

2.2.2 递增和递减  33

2.2.3 整数除法和余数  33

2.2.4 将浮点数转换为整数  34

2.2.5 幂运算和求根运算  34

2.3 输入和输出  40

2.3.1 输入  40

2.3.2 格式化输出  41

2.4 问题求解:首先通过手工实现  43

2.5 字符串  46

2.5.1 字符串类型  47

2.5.2 连接  47

2.5.3 字符串输入  47

2.5.4 字符串函数  48

本章小结  50

复习题  51

练习题  54

编程项目  56

第3章 分支  64

3.1 if语句  64

3.2 数字和字符串的比较  69

3.3 多路分支  75

3.4 嵌套分支  79

3.5 问题求解:流程图  83

3.6 问题求解:测试用例  85

3.7 布尔变量和运算符  87

3.8 实际应用:输入确认  91

本章小结  94

复习题  95

练习题  99

编程项目  101

第4章 循环  109

4.1 while循环  109

4.2 问题求解:手动跟踪  115

4.3 for循环  118

4.4 do循环  123

4.5 处理输入  124

4.5.1 标记值  124

4.5.2 一直读直至输入失败  126

4.6 问题求解:情节串联图板  129

4.7 常用的循环算法  131

4.7.1 求和及均值  131

4.7.2 统计匹配项  132

4.7.3 找到第一个匹配项  132

4.7.4 一直提示输入直至找到匹配项  132

4.7.5 最大值和最小值  133

4.7.6 比较相邻值  133

4.8 嵌套循环  137

4.9 问题求解:首先解决较简单的问题  140

4.10 随机数与模拟  144

4.10.1 生成随机数  144

4.10.2 模拟掷骰子  145

4.10.3 蒙特卡罗方法  146

本章小结  148

复习题  149

练习题  153

编程项目  156

第5章 函数  167

5.1 将函数看作黑盒  167

5.2 实现函数  168

5.3 参数传递  170

5.4 返回值  172

5.5 无返回值的函数  176

5.6 问题求解:可重用函数  177

5.7 问题求解:逐步细化  178

5.8 变量作用域和全局变量  185

5.9 引用参数  187

5.10 递归函数(可选)  191

本章小结  196

复习题  197

练习题  200

编程项目  203

第6章 数组和向量  225

6.1 数组  225

6.1.1 定义数组  225

6.1.2 访问数组元素  227

6.1.3 部分填充的数组  228

6.2 常见的数组算法  230

6.2.1 填充  230

6.2.2 复制  231

6.2.3 求和及均值  231

6.2.4 最大值和最小值  231

6.2.5 元素分隔符  232

6.2.6 统计匹配项  232

6.2.7 线性搜索  232

6.2.8 移除元素  233

6.2.9 插入元素  233

6.2.10 交换元素  234

6.2.11 读取输入  235

6.3 数组与函数  239

6.4 问题求解:修改算法  242

6.5 问题求解:通过操纵有形的物体发现算法  248

6.6 二维数组  250

6.6.1 定义二维数组  250

6.6.2 访问数组元素  251

6.6.3 定位相邻元素  251

6.6.4 计算行和列的合计  252

6.6.5 二维数组参数  253

6.7 向量  256

6.7.1 定义向量  256

6.7.2 增大和减小向量  257

6.7.3 向量和函数  258

6.7.4 向量算法  259

6.7.5 二维向量  260

本章小结  262

复习题  262

练习题  266

编程项目  269

第7章 指针和结构体  282

7.1 定义和使用指针  282

7.1.1 定义指针  282

7.1.2 通过指针访问变量  283

7.1.3 指针的初始化  285

7.2 数组和指针  287

7.2.1 数组作为指针  287

7.2.2 指针的算术运算  288

7.2.3 数组参数变量就是指针  289

7.3 C和C++字符串  292

7.3.1 字符类型  292

7.3.2 C字符串  292

7.3.3 字符数组  293

7.3.4 C和C++字符串的相互转换  293

7.3.5 C++字符串和运算符[]  294

7.4 动态内存分配  296

7.5 指针数组和指针向量  299

7.6 问题求解:绘制指针-数据关系图  302

7.7 结构体  305

7.7.1 结构体类型  305

7.7.2 结构体的赋值和比较  306

7.7.3 函数和结构体  306

7.7.4 结构体数组  306

7.7.5 具有数组成员的结构体  307

7.7.6 嵌套结构体  307

7.8 指针和结构体  309

7.8.1 指向结构体的指针  309

7.8.2 具有指针成员的结构体  309

本章小结  311

复习题  311

练习题  315

编程项目  317

第8章 流  323

8.1 读写文本文件  323

8.1.1 打开流  323

8.1.2 从文件中读入  324

8.1.3 写入文件  325

8.1.4 文件处理示例  325

8.2 读取文本输入  328

8.2.1 读入单词  328

8.2.2 读取字符  328

8.2.3 读取多行数据  329

8.3 写入文本输出  332

8.4 解析和格式化字符串  334

8.5 命令行参数  336

8.6 随机访问及二进制文件  342

8.6.1 随机访问  343

8.6.2 二进制文件  343

8.6.3 处理图像文件  343

本章小结  347

复习题  348

练习题  348

编程项目  350

第9章 类  358

9.1 面向对象程序设计  358

9.2 实现一个简单的类  359

9.3 指定类的公共接口  361

9.4 设计数据表示  363

9.5 成员函数  365

9.5.1 实现成员函数  365

9.5.2 隐式和显式参数  365

9.5.3 从成员函数调用成员函数  366

9.6 构造函数  369

9.7 问题求解:跟踪对象  374

9.8 问题求解:发现类  380

9.9 单独编译  382

9.10 指向对象的指针  386

9.10.1 动态分配对象  386

9.10.2 ->运算符  387

9.10.3 this指针  387

9.11 问题求解:对象数据的模式  388

9.11.1 保存总数  388

9.11.2 对事件进行计数  389

9.11.3 聚集值  389

9.11.4 管理对象的属性  390

9.11.5 对具有不同状态的对象建模  390

9.11.6 描述对象的位置  391

本章小结  393

复习题  394

练习题  396

编程项目  397

第10章 继承  406

10.1 继承层次结构  406

10.2 实现派生类  410

10.3 重写成员函数  414

10.4 虚函数及多态性  417

10.4.1 切割派生类数据问题  417

10.4.2 指向基类和派生类的指针  418

10.4.3 虚函数  419

10.4.4 多态性  420

本章小结  430

复习题  431

练习题  434

编程项目  434

第11章 递归  443

11.1 三角形数  443

11.2 递归助手函数  450

11.3 递归的效率  451

11.4 排列  455

11.5 相互递归  458

11.6 回溯  461

本章小结  468

复习题  468

练习题  469

编程项目  471

第12章 排序和查找  481

12.1 选择排序  481

12.2 剖析选择排序算法  483

12.3 分析选择排序算法的性能  484

12.4 归并排序  488

12.5 分析归并排序算法  490

12.6 查找  494

12.6.1 线性查找  494

12.6.2 二分查找  495

12.7 问题求解:估计算法的运行时间  498

12.7.1 线性时间  498

12.7.2 平方时间  499

12.7.3 三角形图案  500

12.7.4 对数时间  501

本章小结  503

复习题  504

练习题  507

编程项目  508

第13章 高级C++特性  515

13.1 运算符重载  515

13.1.1 运算符函数  515

13.1.2 重载比较运算符  517

13.1.3 输入和输出  518

13.1.4 运算符成员  518

13.2 自动内存管理  522

13.2.1 分配内存的构造函数  522

13.2.2 析构函数  523

13.2.3 重载赋值运算符  525

13.2.4 拷贝构造函数  528

13.3 模板  536

13.3.1 函数模板  537

13.3.2 类模板  537

本章小结  540

复习题  541

练习题  544

编程项目  546

第14章 链表、栈和队列  564

14.1 使用链表  564

14.2 实现链表  568

14.2.1 链表、节点和迭代器类  569

14.2.2 实现迭代器  570

14.2.3 实现插入和删除  572

14.3 链表、数组及向量操作的效率  580

14.4 栈和队列  583

14.5 实现栈和队列  586

14.5.1 由链表实现栈  586

14.5.2 由数组实现栈  589

14.5.3 由链表实现队列  589

14.5.4 由循环数组实现队列  590

14.6 栈和队列的应用  590

14.6.1 平衡括号  590

14.6.2 逆波兰表达式求值  591

14.6.3 代数表达式求值  593

14.6.4 回溯  596

本章小结  598

复习题  599

练习题  601

编程项目  603

第15章 集合、映射和哈希表  617

15.1 集合  617

15.2 映射  619

15.3 实现哈希表  624

15.3.1 哈希码  624

15.3.2 哈希表  625

15.3.3 查找元素  625

15.3.4 添加和移除元素  626

15.3.5 遍历哈希表  626

本章小结  635

复习题  635

练习题  636

编程项目  637

第16章 树结构  641

16.1 树的基本概念  641

16.2 二叉树  644

16.2.1 二叉树示例  644

16.2.2 平衡树  646

16.2.3 二叉树的实现  647

16.3 二叉查找树  648

16.3.1 二分查找的属性  648

16.3.2 插入操作  649

16.3.3 移除操作  651

16.3.4 操作的效率  652

16.4 树遍历  657

16.4.1 中序遍历  657

16.4.2 前序遍历和后序遍历  658

16.4.3 访问者模式  659

16.4.4 深度优先搜索和广度优先搜索  660

16.4.5 树迭代器  661

16.5 红黑树  662

16.5.1 红黑树的基本性质  662

16.5.2 插入操作  664

16.5.3 移除操作  665

本章小结  668

复习题  669

练习题  670

编程项目  671

第17章 优先级队列和堆  711

17.1 优先级队列  711

17.2 堆  713

17.3 堆排序算法  722

本章小结  726

复习题  727

练习题  727

编程项目  728

在线资源一

附录A 保留字小结

附录B 运算符小结

附录C 字符编码

附录D C++库小结

附录E C++语言编程风格指南

附录F 数字系统

术语表

新书推荐 | Big C++中文版(原书第3版)_第1张图片

你与世界

只差一个

公众号

你可能感兴趣的:(新书推荐 | Big C++中文版(原书第3版))