图书介绍

C++17从入门到精通PDF|Epub|txt|kindle电子书版本网盘下载

C++17从入门到精通
  • 董洪伟编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302527435
  • 出版时间:2019
  • 标注页数:474页
  • 文件大小:42MB
  • 文件页数:488页
  • 主题词:C++语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C++17从入门到精通PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 C++介绍1

1.1 程序与编程语言1

1.1.1 计算机是什么1

1.1.2 计算机编程3

1.1.3 编译器、解释器和C++语言4

1.1.4 C++语言介绍4

1.1.5 C++程序开发步骤5

1.2 C++程序结构6

1.2.1 最简单的C++程序6

1.2.2 函数6

1.2.3 语句7

1.2.4 程序注释7

1.2.5 hello world程序8

1.2.6 标准输入输出库和cout8

1.2.7 名字空间9

1.2.8 字符串和字符10

1.2.9 运算符和运算数11

1.2.10 宏定义# define12

1.2.11 变量13

1.2.12 标准输入流对象cin14

1.2.13 用户定义类型14

1.3 数和字符的表示15

1.3.1 数的表示15

1.3.2 字符的表示17

1.4 编译、执行C++程序19

1.5 习题20

第2章 变量和类型23

2.1 变量23

2.1.1 变量的定义及初始化23

2.1.2 auto24

2.1.3 typeid运算符24

2.1.4 decltype25

2.1.5 赋值运算符=25

2.1.6 const25

2.1.7 标识符、关键字、文字量26

2.2 数据类型26

2.2.1 基本类型27

2.2.2 sizeof运算符29

2.2.3 文字量30

2.2.4 格式化输出33

2.2.5 类型转换34

2.2.6 类型别名36

2.2.7 枚举37

2.3 局部变量与全局变量、变量的作用域与生命期37

2.3.1 程序块、局部变量和全局变量37

2.3.2 作用域和生命期38

2.4 习题39

第3章 运算符与表达式42

3.1 运算符42

3.1.1 运算符的分类42

3.1.2 优先级和结合性43

3.2 表达式44

3.3 算术运算符44

3.3.1 算术运算符需要注意的几个问题45

3.3.2 自增++和自减--46

3.3.3 数学计算函数库cmath47

3.4 位运算49

3.5 赋值运算符51

3.6 关系运算符52

3.7 逻辑运算符54

3.8 特殊运算符54

3.8.1 条件运算符54

3.8.2 逗号运算符55

3.9 习题55

第4章 语句58

4.1 简单语句、复合语句和控制语句58

4.1.1 简单语句58

4.1.2 复合语句58

4.1.3 控制语句59

4.2 条件语句59

4.2.1 if语句59

4.2.2 switch语句62

4.2.3 if/switch语句中的初始化语句65

4.3 循环语句66

4.3.1 while语句66

4.3.2 for语句68

4.4 跳转语句69

4.5 实战:控制台游戏——Pong游戏70

4.5.1 Pong游戏70

4.5.2 初始化71

4.5.3 绘制场景71

4.5.4 让球动起来73

4.5.5 事件处理:用挡板击打球77

4.6 习题78

第5章 复合类型:数组、指针和引用82

5.1 引用82

5.2 指针83

5.2.1 指针类型83

5.2.2 指针的其他运算85

5.2.3 void*无类型指针85

5.2.4 指针的指针86

5.2.5 指针的引用87

5.2.6 引用和指针的比较87

5.3 数组87

5.3.1 数组和下标运算符87

5.3.2 复杂的数组声明89

5.3.3 C风格字符串90

5.3.4 指针访问数组91

5.3.5 range for94

5.3.6 多维数组95

5.4 动态内存98

5.4.1 程序堆栈区98

5.4.2 new和delete运算符99

5.4.3 动态内存表示多维数组101

5.5 const修饰符102

5.5.1 const和指针102

5.5.2 const对象的引用104

5.6 实战:查找、排序、最短路径105

5.6.1 二分查找105

5.6.2 排序:冒泡、选择108

5.6.3 Floyd最短路径算法109

5.7 习题113

第6章 函数119

6.1 函数是命名的程序块119

6.1.1 最大公约数119

6.1.2 函数的定义122

6.2 静态变量124

6.3 函数的形参125

6.3.1 参数传递125

6.3.2 默认参数126

6.3.3 数组作为形参127

6.3.4 const与形参129

6.3.5 可变数目的形参129

6.4 递归函数:调用自身的函数131

6.4.1 递归和递归函数131

6.4.2 实战:二分查找的递归实现133

6.4.3 实战:汉诺塔问题133

6.4.4 实战:快速排序算法135

6.4.5 实战:迷宫问题137

6.5 函数重载与重载解析139

6.5.1 函数重载139

6.5.2 重载解析140

6.5.3 const对象的引用或指针142

6.6 inline函数142

6.7 constexpr143

6.8 实战:二维字符图形库ChGL145

6.8.1 如何在字符终端上绘图145

6.8.2 字符图形库ChGL146

6.8.3 曲线绘制API函数plot()149

6.9 实战:基于ChGL的控制台游戏151

6.9.1 游戏程序的框架151

6.9.2 用ChGL和函数重写Pong游戏151

6.10 实战:机器学习-线性回归156

6.10.1 机器学习156

6.10.2 假设函数、回归和分类157

6.10.3 线性回归157

6.10.4 多变量函数的最小值、正规方程158

6.10.5 梯度下降法159

6.10.6 梯度下降法求解线性回归问题:模拟数据160

6.10.7 批梯度下降法165

6.10.8 房屋价格预测166

6.10.9 样本特征的规范化167

6.10.10 预测房屋价格170

6.11 习题170

第7章 类和对象174

7.1 面向对象编程174

7.2 类177

7.2.1 定义一个类177

7.2.2 定义类的对象(变量)178

7.2.3 成员函数180

7.2.4 this指针180

7.2.5 类对象的大小183

7.3 构造函数183

7.3.1 创建类对象的构造函数183

7.3.2 初始化成员列表187

7.3.3 拷贝构造函数187

7.3.4 赋值运算符:operator=189

7.3.5 隐式类型转换、explicit190

7.3.6 委托构造函数192

7.3.7 delete193

7.3.8 类对象数组193

7.3.9 类体外定义成员函数和构造函数194

7.4 访问控制和接口195

7.5 const对象、const成员函数、mutable成员变量196

7.5.1 const对象和const成员函数196

7.5.2 重载const198

7.5.3 mutable成员变量200

7.6 析构函数200

7.7 静态成员202

7.7.1 非静态成员变量和静态成员变量202

7.7.2 静态常量204

7.7.3 静态成员函数205

7.7.4 类自身类型的静态成员变量205

7.8 友元207

7.9 内联成员函数207

7.10 重新定义拷贝构造函数和赋值运算符函数208

7.11 实战:线性表及应用209

7.11.1 线性表209

7.11.2 线性表的顺序实现:顺序表211

7.11.3 线性表的链式实现:链表215

7.11.4 实现一个图书管理的程序222

7.12 实战:面向对象游戏——基于链表的贪吃蛇游戏224

7.12.1 面向对象游戏引擎224

7.12.2 贪吃蛇游戏226

7.13 习题237

第8章 运算符重载242

8.1 运算符重载的2种方式242

8.2 赋值运算符=246

8.3 下标运算符[]246

8.4 输入输出运算符247

8.5 比较运算符248

8.6 函数调用运算符()250

8.7 类型转换运算符250

8.8 自增和自减运算符252

8.9 可以重载的运算符253

8.10 实战:矩阵253

8.11 习题257

第9章 派生类259

9.1 继承与派生259

9.1.1 继承关系和派生类259

9.1.2 is a和belong to260

9.1.3 派生类的定义260

9.1.4 成员的隐藏261

9.1.5 继承方式263

9.1.6 基类指针和派生类指针264

9.2 派生类的构造函数和析构函数266

9.3 多继承和虚基类272

9.3.1 多继承272

9.3.2 虚基类274

9.4 多态276

9.4.1 对象的切割和类型转换276

9.4.2 基类指针(引用)和向下类型转换277

9.4.3 虚函数和多态280

9.4.4 虚函数的一些语法规则283

9.4.5 基类指针数组285

9.4.6 虚析构函数286

9.4.7 纯虚函数和抽象类286

9.5 实战:仿“雷电战机”游戏288

9.5.1 精灵288

9.5.2 游戏引擎GameEngine291

9.5.3 碰撞检测和精灵的销毁295

9.5.4 让敌方战机运动和发射子弹297

9.6 习题300

第10章 模板305

10.1 函数模板305

10.1.1 函数模板的定义与实例化306

10.1.2 模板参数推断307

10.1.3 模板专门化308

10.1.4 函数模板和重载309

10.1.5 模板的返回类型推断310

10.1.6 非类型模板参数311

10.1.7 模板模板参数313

10.1.8 模板参数的默认值313

10.1.9 可变模板参数314

10.1.10 constexpr if317

10.2 类模板317

10.2.1 标准库类模板vector317

10.2.2 类模板Vector320

10.2.3 定义类模板的成员函数321

10.2.4 类模板的模板参数推断327

10.2.5 类模板的专门化328

10.2.6 类模板的友元329

10.2.7 类模板std::initializer_list<>330

10.3 实战:强化学习Q-Learning求解最佳路径332

10.3.1 强化学习332

10.3.2 Q-Learning334

10.3.3 Q-Learning的C++实现336

10.4 习题343

第11章 移动语义347

11.1 左值和右值347

11.1.1 左值和右值概述347

11.1.2 左值和右值的转换349

11.1.3 左值引用和右值引用349

11.2 移动350

11.2.1 复制和移动350

11.2.2 移动构造函数353

11.2.3 移动赋值运算符函数353

11.2.4 std::move354

11.2.5 右值引用355

11.2.6 push_back()355

11.3 习题357

第12章 函数指针、函数对象、Lambda表达式359

12.1 函数指针359

12.1.1 函数类型和函数指针类型359

12.1.2 给函数指针类型起别名361

12.1.3 函数指针作为其他函数的参数361

12.2 函数对象363

12.3 Lambda表达式366

12.3.1 定义和使用Lambda表达式366

12.3.2 捕获子句368

12.3.3 返回类型370

12.3.4 Lambda表达式的实质371

12.4 std::function371

12.5 std::bind374

12.6 习题376

第13章 C++标准库介绍378

13.1 输入输出流库379

13.1.1 C++的I/O流库379

13.1.2 格式化输入输出382

13.1.3 非格式化输入输出386

13.1.4 文件位置392

13.1.5 流状态393

13.1.6 管理输出缓冲区395

13.1.7 文件输入输出395

13.1.8 字符串流397

13.2 容器399

13.2.1 标准容器399

13.2.2 序列容器401

13.2.3 容器适配器406

13.2.4 关联容器408

13.3 迭代器411

13.3.1 迭代器及其分类411

13.3.2 迭代器适配器416

13.3.3 数组、字符串和迭代器423

13.4 算法423

13.4.1 自定义通用算法424

13.4.2 策略参数425

13.4.3 标准库的常用算法426

13.5 智能指针442

13.5.1 raw指针和智能指针442

13.5.2 unique_ptr443

13.5.3 shared_ptr447

13.5.4 weak_ptr448

13.6 字符串449

13.6.1 字符:<cctype>、<cwctype>449

13.6.2 C风格字符串449

13.6.3 C++的字符串450

13.7 习题455

第14章 异常处理459

14.1 错误和异常处理459

14.1.1 错误的分类459

14.1.2 传统的错误处理方法459

14.1.3 C++的异常处理460

14.2 throw、try、catch461

14.2.1 throw461

14.2.2 try、catch461

14.2.3 异常类型的匹配463

14.3 堆栈展开和RAII464

14.3.1 堆栈展开464

14.3.2 资源获取即初始化466

14.4 习题470

参考文献473

热门推荐