当前位置:首页 > 工业技术
写给大忙人看的C++
写给大忙人看的C++

写给大忙人看的C++PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:(美)奥弗兰德著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121268618
  • 页数:578 页
图书介绍:本书为工作繁忙的程序员学习C++语言新特性提供了一条捷径,也可以作为解决具体语言问题的速查手册。同时本书也是新的C++ 11标准的基本指南。本书内容包括:对C++核心语言和标准库中的几乎每个函数、对象和操作符都进行了简要描述;总结了语法显示、表格和重要函数;对高级概念进行简要解释,并配以实用插图;实用而有趣的完整程序示例,包括拼图、游戏和有挑战性的练习;以及C++ 11的所有特点。
《写给大忙人看的C++》目录

第1章 C++基础 1

1.1 组成C++程序的元素 1

1.1.1 #include指令 2

1.1.2 using语句 2

1.1.3 main函数 3

1.2 处理“闪烁的控制台一闪而过” 4

1.3 使用Microsoft Visual Studio 4

1.4 使用C++执行更多的操作 5

1.5 添加简单的变量声明 7

1.6 介绍C++控制结构 9

1.6.1 使用“if”,做判断 9

1.6.2 使用“while”,循环 11

1.7 C++程序的一般结构 12

1.8 关于命名空间的更多内容 13

1.9 关于注释的一些解释 15

1.9.1 C++注释(行注释) 15

1.9.2 C语言风格的注释 15

1.10 示例应用程序:加法机 16

练习 17

1.11 示例应用程序:计算phi 18

练习 20

第2章 数据 21

2.1 声明简单变量 22

2.2 基本数据类型 23

2.2.1 整数类型:准则 24

2.2.2 浮点类型:准则 25

2.3 符号名(符号) 25

2.4 字面量 26

2.5 混合数值类型 29

2.5.1 整数与浮点数 29

2.5.2 布尔型与整型 30

2.5.3 有符号整数与无符号整数 30

2.6 字符串和字符字面量 33

2.6.1 单引号字符 33

2.6.2 双引号字符串 34

2.6.3 特殊字符(转义序列) 36

2.6.4 宽字符串 39

2.6.5 原始字符串字面量(C++11) 40

2.7 数据声明:完整的语法 40

2.8 枚举类型 43

2.9 特殊声明(typedef、 auto、 decltype) 45

2.9.1 typedef关键字 45

2.9.2 auto和decltype关键字(C++11) 46

2.10 示例应用程序:类型提升 47

练习 48

第3章 运算符 49

3.1 优先级、结合性及左值 49

3.1.1 优先级 49

3.1.2 结合性 50

3.1.3 左值 50

3.2 运算符的简明概述 51

3.3 运算符的详细信息 53

3.3.1 范围运算符 53

3.3.2 数据访问及其他高优先级的运算符 54

3.3.3 前缀运算符 55

3.3.4 指向成员的指针运算符 58

3.3.5 乘法和除法 59

3.3.6 加法和减法 60

3.3.7 移位运算符 60

3.3.8 小于和大于 61

3.3.9 测试相等 62

3.3.10 位运算和逻辑连词 63

3.3.11 条件运算符 64

3.3.12 赋值运算符 64

3.3.13 throw运算符 67

3.3.14 连接运算符 67

3.4 善恶之争:后缀或前缀 67

3.5 位运算符的详细信息 68

3.5.1 按位与、或、异或 68

3.5.2 对有符号数和无符号数的操作 69

3.5.3 按位移位 71

3.6 类型转换运算符 71

3.6.1 static cast运算符 72

3.6.2 reinterpret cast运算符 73

3.6.3 const cast运算符 74

3.6.4 dynamic_ cast运算符 75

3.6.5 C语言的类型转换 76

3.7 示例应用程序:打印输出二进制基数 76

练习 78

第4章 控制结构 80

4.1 C++语句的简明概述 80

4.2 空语句和表达式语句 82

4.3 复合语句 83

4.4 if和if-else语句 84

4.5 while和do-while语句 86

4.6 for语句 87

4.7 基于范围的for语句(C++11) 89

4.8 switch语句 90

4.9 跳转语句(break、 continue、 goto) 92

4.10 异常处理(try、catch) 94

4.10.1 什么是异常 94

4.10.2 try-catch代码块:常规语法 95

4.10.3 catch块和异常对象 96

4.10.4 抛出一个异常 97

4.11 示例应用程序:猜数字游戏 98

练习 99

4.12 示例应用程序:计算机猜数字 100

练习 102

第5章 函数 103

5.1 传统的(命名)函数概述 103

5.1.1 函数原型与定义 104

5.1.2 原型化一个函数(简化的语法) 105

5.1.3 定义函数 105

5.1.4 调用函数 107

5.2 局部和全局变量 107

5.3 完整的函数声明语法 109

5.4 函数重载 111

5.5 带有默认值的参数 112

5.6 可变长度参数列表 113

5.7 lambda函数或匿名函数(C++11) 115

5.7.1 lambda函数的基本语法 116

5.7.2 lambda函数的闭包语法 117

5.7.3 mutable关键字 120

5.7.4 将lambda表达式与 STL连用 120

5.7.5 存储和返回lambda函数 122

5.8 constexpr函数(C++11) 124

5.9 示例应用程序:骰子的概率 125

练习 127

第6章 指针、数组和引用 129

6.1 引用 129

6.1.1 引用参数 129

6.1.2 从函数中返回一个引用 132

6.1.3 用“const”修饰的引用 132

6.2 数组 133

6.2.1 简单的(一维)数组 134

6.2.2 数组处理与循环 135

6.2.3 向函数传递数组 136

6.2.4 多维数组 137

6.3 指针 139

6.3.1 指针的概念 139

6.3.2 将指针作为参数 141

6.3.3 用于访问数组的指针 142

6.3.4 指针运算 145

6.3.5 指针与数组参数 145

6.3.6 指针和内存分配 146

6.3.7 指向const类型的指针 148

6.3.8 对指针本身应用const 150

6.3.9 void指针(void) 151

6.4 涉及指针的复合声明 152

6.5 传递和返回函数指针 155

6.6 智能指针(C++11) 156

6.6.1 shared_ptr模板 157

6.6.2 unique_ptr模板 160

6.7 示例应用程序:埃拉托色尼筛 162

练习 163

第7章 类与对象 165

7.1 概述:结构、联合和类 165

7.2 基本的类声明语法 166

7.2.1 声明和使用一个类 167

7.2.2 数据成员访问(公有、私有、保护) 168

7.2.3 定义成员函数 170

7.2.4 调用成员函数 173

7.2.5 私有成员函数 175

7.2.6 包含类的类 175

7.2.7 静态成员 177

7.3 构造函数 179

7.3.1 默认构造函数 180

7.3.2 重载的构造函数和转换函数 182

7.3.3 复制构造函数 183

7.3.4 构造函数初始化列表 184

7.3.5 委托构造函数(C++11) 187

7.3.6 默认成员初始化(C++11) 188

7.4 析构函数 188

7.5 隐藏的this指针 189

7.6 运算符函数(运算符重载) 190

7.6.1 将运算符函数作为成员 191

7.6.2 作为友元的运算符函数 192

7.6.3 赋值运算符 194

7.6.4 函数调用运算符 195

7.6.5 下标运算符 196

7.6.6 递增运算符和递减运算符 197

7.6.7 传入和传出转换函数 198

7.7 派生类(子类化) 199

7.7.1 子类语法 200

7.7.2 基类访问说明 201

7.7.3 继承的构造函数(C++11) 202

7.7.4 向上强制类型转换:子对象和基类指针 203

7.7.5 虚函数和重载 205

7.7.6 纯虚函数 207

7.7.7 override关键字(C++11) 207

7.7.8 解决层次结构中的名字冲突 208

7.8 位字段 209

7.9 联合 211

7.9.1 命名联合 211

7.9.2 匿名联合 213

7.10 示例应用程序:打包的布尔 213

演习 216

第8章 预处理器指令 217

8.1 预处理器指令的常规语法 217

8.2 预处理器指令小结 218

8.3 使用指令来解决具体问题 221

8.3.1 用#define创建有意义的符号 221

8.3.2 用#define创建宏 223

8.3.3 条件编译(#if、#endif等) 224

8.4 预处理器运算符 226

8.5 预定义宏 227

8.6 创建项目头文件 229

第9章 创建和使用模板 231

9.1 模板:语法和概述 231

9.2 函数模板 233

9.2.1 单参数的函数模板 233

9.2.2 处理类型歧义 235

9.2.3 有两个参数的函数模板 235

9.3 类模板 237

9.3.1 简单的类模板 238

9.3.2 实例化类模板 239

9.4 类模板与成员函数 240

9.4.1 类模板与内联成员函数 240

9.4.2 具有独立函数定义的类模板 241

9.5 使用整型模板参数 242

9.6 模板专门化 243

9.7 可变参数模板(C++11) 245

9.7.1 更复杂的可变模板 247

9.7.2 可变参数模板规则概述 248

9.7.3 元组 249

9.8 示例应用程序:类型提升 250

练习 251

第10章 C-字符串库函数 252

10.1 C-字符串格式概述 252

10.2 使用C-字符串输入和输出 254

10.3 C-字符串函数 255

10.4 用strtok对字符串标记化 260

10.5 单字符函数 261

10.6 内存块函数(memcpy等) 264

10.7 宽字符函数(wstrcpy等) 266

第11章 C I/O库函数 268

11.1 C I/O库概述 268

11.2 控制台I/O函数 269

11.3 打印/扫描格式 272

11.3.1 printf格式说明符(%) 272

11.3.2 高级printf格式的语法 274

11.3.3 将格式说明符与scanf函数配合使用 276

11.4 输入和输出字符串 278

11.5 文件I/O 279

11.5.1 打开文件 280

11.5.2 关闭文件 282

11.5.3 读取和写入文本文件 282

11.5.4 读写二进制文件 284

11.5.5 随机访问函数 286

11.5.6 其他文件管理函数 287

第12章 数学、时间和其他库函数 289

12.1 三角函数 290

12.2 其他数学函数 292

12.3 C语言的日期和时间库 294

12.3.1 日期和时间函数 295

12.3.2 TM (“Time”)数据结构 298

12.3.3 日期/时间格式说明符(strftime) 299

12.4 从字符串到数字的转换 302

12.5 内存分配函数 304

12.6 标准C随机函数 305

12.7 查找和排序函数 306

12.7.1 bsearch函数(二分查找) 307

12.7.2 qsort函数(快速排序) 308

12.7.3 使用C字符串的比较函数 310

12.8 其他标准C库函数 310

12.9 示例应用程序:智障学者 312

练习 314

第13章 C++的I/O流类 315

13.1 C++的I/O流的基础知识 315

13.1.1 用“<<”写入输出 316

13.1.2 用“>>”读取输入 316

13.2 利用getline读取输入行 318

13.3 C++流类的层次结构 319

13.4 流对象:控制符及标志 321

13.4.1 流控制符 322

13.4.2 流格式标志 329

13.5 流成员函数(通用) 331

13.5.1 输入流函数 331

13.5.2 输出流函数 333

13.5.3 标记设置流函数 334

13.6 文件流操作 337

13.6.1 概述:文本与二进制文件I/O 337

13.6.2 创建一个文件对象 338

13.6.3 文件的特定成员函数 341

13.6.4 读写二进制模式 342

13.6.5 随机存取操作 343

13.7 读取和写入字符串流 345

13.8 为你的类重载移位运算符 348

13.9 示例应用程序:文本文件阅读器 350

练习 351

第14章 C++ STL string类 352

14.1 string类概述 352

14.2 string类的构造函数 353

14.3 字符串类运算符 355

14.3.1 字符串赋值 355

14.3.2 字符串连接 355

14.3.3 字符串比较 356

14.3.4 字符串索引 357

14.4 成员函数概述 358

14.5 成员函数详解 359

14.6 string类的迭代器 372

14.6.1 标准(正向)迭代器 372

14.6.2 反向迭代器 374

14.6.3 迭代算法 375

14.6.4 使用迭代器的成员函数 375

14.7 宽字符串类(basic_string) 377

第15章 STL(向量,双端队列)简介 378

15.1 容器模板简介 378

15.2 介绍迭代器 380

15.3 向量模板 381

15.3.1 向量迭代器 382

15.3.2 向量构造函数 384

15.3.3 列表初始化(C++11) 385

15.3.4 向量函数简明摘要 385

15.3.5 向量成员函数详解 385

15.4 双端队列模板 392

15.4.1 双端队列迭代器 394

15.4.2 双端队列构造函数 394

15.4.3 双端队列函数简介 395

15.4.4 双端队列函数详解 396

15.5 位集合模板 402

15.5.1 位集合构造函数 403

15.5.2 位集合成员函数 403

15.6 示例应用程序:字母文本文件管理 405

练习 407

第16章 STL序列容器(List) 408

16.1 排序元素(严格弱序) 408

16.2 列表模板 409

16.2.1 列表迭代器 410

16.2.2 列表构造函数 412

16.2.3 列表函数简明摘要 413

16.2.4 列表成员函数详解 414

16.3 栈模板 423

16.4 队列模板 426

16.5 优先队列模板 428

16.5.1 优先队列构造函数 430

16.5.2 优先队列成员函数 431

16.6 示例应用程序:找出中位数 432

演习 433

第17章 STL关联容器(map、set) 435

17.1 pair模板 435

17.2 映射模板 437

17.2.1 填充映射 438

17.2.2 查找现有映射的元素 440

17.2.3 一个更复杂的记录类型 441

17.2.4 遍历映射 445

17.2.5 映射实现:二叉树 445

17.2.6 映射构造函数 447

17.2.7 映射函数简明摘要 448

17.2.8 映射成员函数详解 449

17.3 集合模板 455

17.3.1 填充集合 456

17.3.2 查找集合中的一个元素 457

17.3.3 集合构造函数 457

17.3.4 集合函数简明摘要 459

17.3.5 集合成员函数详解 460

17.4 多重映射模板 465

17.5 多重集合模板 467

17.6 无序容器(C++11) 469

17.6.1 无序容器:基本概念 469

17.6.2 调优散列表的性能 473

17.6.3 编写你自己的散列和相等函数 475

17.7 示例应用程序:猜单词游戏 477

练习 479

第18章 STL算法 480

18.1 STL算法:基本概念 480

18.2 使用lambda函数(C++11) 482

18.3 算法和迭代器 484

18.4 插入迭代器 485

18.5 示例应用程序:寻找中位数 486

18.6 算法简明摘要 487

18.6.1 只读算法 488

18.6.2 修改算法 489

18.6.3 排序和重新排序算法 489

18.6.4 堆算法 490

18.6.5 数值算法 492

18.6.6 预定义的函数对象 492

18.7 算法详解 494

第19章 C++11的随机化库 527

19.1 随机化中的问题 527

19.1.1 有偏差的分布问题 527

19.1.2 伪随机序列的问题 528

19.1.3 获取种子的问题 528

19.2 一个更好的随机化方案 529

19.3 常见的引擎 531

19.4 常用的分布 532

19.5 对引擎的操作 535

19.6 对分布的操作 536

19.7 示例应用程序:骰子游戏 537

练习 539

第20章 C++11的正则表达式库 540

20.1 C++11的正则表达式概述 540

20.2 处理转义序列() 543

20.3 构造一个正则表达式字符串 544

20.3.1 匹配字符 544

20.3.2 模式修饰符 547

20.3.3 重复组 548

20.3.4 字符类 549

20.4 匹配和查找函数 550

20.5 “查找全部”或迭代查找 552

20.6 替换文本 553

20.7 字符串标记化 555

20.8 捕获正则表达式异常 556

20.9 示例应用程序:RPN计算器 557

练习 559

附录A对右值引用(C++11)的轻松介绍 561

A.1复制的麻烦 561

A.2移动语义:C++11来救援 564

A.3在用户的String类中的右值引用 566

A.4验证运行时性能的提高 568

A.5右值和包含的对象 569

A.6引用:右值和左值再思考 570

附录B C++11新功能概述 572

B.1对象结构改进 572

B.2其他核心语言增强功能 573

B.3其他新关键字 574

B.4标准库的扩展 574

附录C ASCII码 576

返回顶部