《C++编程关键路径 程序员求职指南》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:梁永军编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2010
  • ISBN:9787508470825
  • 页数:292 页
图书介绍:本书把C++知识按照实际开发工作的需要,分为C语言、C++和STL等3部分,共分10章,主要讲解C++在实际工作中需要掌握的知识、需要掌握多深,确保C++程序员在学习和工作中少走弯路,打下扎实的C++基本功。总之,本书通过作者多年的编程经验,讲解了C/C++程序员在实际工作中需要掌握的知识,是C/C++程序员求职和谋求更高薪水的指南。

第1章 C语言关键知识 1

1.1 C语言知识 1

1.2 C语言的核心:函数、变量和指针 2

1.2.1 C语言测试程序 2

1.2.2 内存存储 4

1.2.3 程序解答 4

1.2.4 常量和指针 9

1.2.5 临时对象 12

1.2.6 被轻视的数据类型 13

1.2.7 小结 16

1.3 蕴藏丰富的Hello World程序 16

1.3.1 开始Hello World 16

1.3.2 预处理 18

1.3.3 控制台 20

1.3.4 调试 20

1.3.5 杂项 22

第2章 关键算法和数据结构 23

2.1 掌握算法的前提Ⅰ:单链表 23

2.1.1 线性表 23

2.1.2 单链表 24

2.1.3 单链表创建算法 24

2.1.4 单链表查找算法 27

2.1.5 单链表删除算法 29

2.1.6 单链表插入算法 31

2.2 掌握算法的前提Ⅱ:循环链表 33

2.2.1 循环链表创建算法 33

2.2.2 循环链表查找算法 34

2.2.3 循环链表删除算法 35

2.2.4 循环链表插入算法 35

2.3 被初学者忽视被资深者推崇的:双向链表 36

2.3.1 双向链表创建算法 37

2.3.2 双向链表查找算法 38

2.3.3 双向链表删除算法 40

2.3.4 双向链表插入算法 43

2.3.5 双向循环链表 45

2.4 高手的挚爱:充分理解“树” 46

2.4.1 树的基本概念 46

2.4.2 二叉树 47

2.4.3 线索二叉树 49

2.5 几棵最重要的“树” 51

2.5.1 表达式树 51

2.5.2 二叉排序树 51

2.5.3 平衡二叉树 53

2.5.4 红黑树 55

2.5.5 堆 56

2.6 最需要掌握的排序算法和查找算法 56

2.6.1 插入排序 57

2.6.2 选择排序 59

2.6.3 交换排序 60

2.6.4 归并排序 63

2.6.5 需要掌握的查找算法 63

第3章 记住C语言的常用库函数 65

3.1 库函数的使用 65

3.1.1 使用MSDN 65

3.1.2 熟练使用库函数 66

3.2 常用库函数 68

3.2.1 stdlib.h 68

3.2.2 stdio.h 69

3.2.3 math.h 69

3.2.4 ctype.h 71

3.2.5 string.h 71

3.2.6 malloc.h 74

第4章 开始学习C++ 76

4.1 C++语言知识体系 76

4.2 预处理 77

4.2.1 常见的预处理 77

4.2.2 注意#pragma pack 78

4.2.3 其他需要知道的预处理宏 82

4.3 函数 83

4.3.1 声明和定义函数、函数原型 84

4.3.2 记住:函数声明前面的压栈声明 86

4.3.3 必须理解:传值调用和传址调用 88

4.3.4 尽量采用传址调用(传指针或传引用)来代替传值调用 90

4.3.5 内联(inline)函数 91

4.3.6 知道:函数重载 92

4.3.7 理解extern"C" 93

4.3.8 理解函数指针 98

4.3.9 专家的最爱:回调函数 100

4.3.10 namespace命名空间 103

4.3.11 STL的基础:函数模板 106

第5章 C++类和继承 108

5.1 快速了解类的基本概念 108

5.1.1 类和类对象的定义 108

5.1.2 静态成员 110

5.1.3 友元 111

5.1.4 局部类和嵌套类 113

5.1.5 类模板 114

5.2 真正走入C++:类的构造和析构 115

5.2.1 new/delete和malloc/free以及定位new 115

5.2.2 构造函数和析构函数 117

5.2.3 默认构造函数 119

5.2.4 类的拷贝构造函数 121

5.2.5 在含有指针数据成员的时候构建自己的拷贝构造函数 122

5.2.6 类的赋值和拷贝构造函数必须同时设计,尽量用拷贝构造来代替赋值 126

5.2.7 类的成员初始化表 131

5.3 C++九鼎之器:类的继承 133

5.3.1 继承和派生 133

5.3.2 记住常用的继承关系是公有继承 134

5.3.3 构造函数、析构函数在继承关系中调用的优先顺序 136

5.3.4 多继承 137

5.4 C++虚函数 137

5.4.1 虚函数 137

5.4.2 静态联编和动态联编 139

5.4.3 记住父类的析构函数必须是:虚的析构函数 140

5.4.4 再谈多继承 143

5.4.5 纯虚函数和抽象类 146

5.5 高级话题:虚拟继承和虚基类 146

第6章 走入STL 151

6.1 STL知识体系一览 151

6.2 初窥STL 152

6.2.1 STL简介 152

6.2.2 STL历史 154

6.2.3 STL的5个版本 155

6.2.4 一个小程序——需要仔细理解 156

6.2.5 程序剖析 157

6.2.6 从容器开始 158

第7章 STL容器 160

7.1 用vector敲开STL的大门 160

7.1.1 vector概述 160

7.1.2 vector定义源码 161

7.1.3 vector成员函数 166

7.1.4 vector数据结构说明 169

7.2 双向循环链表list 170

7.2.1 list概述 170

7.2.2 list定义源码 170

7.2.3 list成员函数 179

7.2.4 list数据结构说明 182

7.3 慎用deque 183

7.3.1 deque概述 183

7.3.2 deque定义源码 184

7.3.3 deque成员函数 191

7.3.4 deque数据结构说明 194

7.4 deque的stack、queue与vector的priority_queue 195

7.4.1 stack概述 195

7.4.2 queue概述 197

7.4.3 priority_queue概述 198

7.4.4 小结 200

7.5 关联容器 200

7.5.1 关联容器概述 200

7.5.2 红黑树回顾 200

7.5.3 红黑树定义源码 201

7.6 set 205

7.6.1 set概述 205

7.6.2 set定义源码 206

7.6.3 set成员函数 208

7.6.4 set数据结构 210

7.7 map 210

7.7.1 map概述 210

7.7.2 map定义源码 211

7.7.3 map成员函数 214

7.7.4 map数据结构 216

7.8 multiset和multimap 216

7.8.1 multiset概述 216

7.8.2 multimap概述 217

第8章 迭代器iterator 219

8.1 最简单的vector迭代器 219

8.2 list迭代器 222

8.3 其他容器的迭代器 224

8.4 初窥iterator适配器 225

8.5 迭代器分类 231

8.6 智能指针 234

第9章 配置器、函数对象和适配器 238

9.1 配置器allocator 238

9.1.1 初窥配置器 238

9.1.2 P.J.Plauger版本的配置器 241

9.1.3 SGI版本的配置器 243

9.2 函数对象functors/function objects(又称仿函数) 244

9.2.1 初窥函数对象 244

9.2.2 一元函数对象和二元函数对象 246

9.2.3 常用函数对象 247

9.3 适配器adapter(又称配接器) 250

9.3.1 容器适配器container adapter 250

9.3.2 迭代器适配器iterator adapter 250

9.3.3 函数适配器function adapter 250

第10章 泛型算法algorithms 252

10.1 算法分类 252

10.2 算法中的迭代器 253

10.2.1 输入迭代器InputIterator 254

10.2.2 输出迭代器OutputIterator 255

10.2.3 前向迭代器ForwardIterator 256

10.2.4 双向迭代器BidirectionalIterator 257

10.2.5 随机访问迭代器RandomAccessIterator 258

10.3 常用算法 260