当前位置:首页 > 工业技术
C++程序设计  原理与实践  进阶篇
C++程序设计  原理与实践  进阶篇

C++程序设计 原理与实践 进阶篇PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:(美)本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111562528
  • 页数:426 页
图书介绍:C++之父Bjarne Stroustrup经典著作《C++程序设计:原理与实践(原书第2版)》基于最新的C++11和C++14,广泛地介绍了程序设计的基本概念和技术,包括类型系统、算术运算、控制结构、错误处理等;介绍了从键盘和文件获取数值和文本数据的方法以及以图形化方式表示数值数据、文本和几何图形;介绍了C++标准库中的容器(如向量、列表、映射)和算法(如排序、查找和内积)的设计和使用。同时还对C++思想和历史进行了详细的讨论,很好地拓宽了读者的视野。 为方便读者循序渐进学习,加上篇幅所限,《C++程序设计:原理与实践(原书第2版)》分为基础篇和进阶篇两册出版,基础篇包括第0~11章、第17~19章和附录A、C,进阶篇包括第12~16章、第20~27章和附录B、D、E。本书是进阶篇。本书通俗易懂、实例丰富,可作为大学计算机、电子工程、信息科学等相关专业的教材,也可供相关专业人员参考。
《C++程序设计 原理与实践 进阶篇》目录

第15章 容器和迭代器 1

15.1 存储和处理数据 1

15.1.1 处理数据 1

15.1.2 泛化代码 2

15.2 STL理念 4

15.3 序列和迭代器 7

15.3.1 回到实例 8

15.4 链表 9

15.4.1 链表操作 11

15.4.2 遍历 12

15.5 再次泛化vector 13

15.5.1 遍历容器 15

15.5.2 auto 15

15.6 实例:一个简单的文本编辑器 16

15.6.1 处理行 18

15.6.2 遍历 18

15.7 vector、list和 string 21

15.7.1 insert和erase 22

15.8 调整vector类达到STL版本的功能 24

15.9 调整内置数组达到STL版本的功能 26

15.10 容器概览 27

15.10.1 迭代器类别 28

简单练习 29

思考题 30

术语 30

习题 31

附言 32

第16章 算法和映射 33

16.1 标准库算法 33

16.2 最简单的算法find() 34

16.2.1 一些一般的应用 35

16.3 通用搜索算法find_if() 36

16.4 函数对象 38

16.4.1 函数对象的抽象视图 39

16.4.2 类成员上的断言 39

16.4.3 lambda表达式 40

16.5 数值算法 41

16.5.1 累积 42

16.5.2 泛化accumulate() 43

16.5.3 内积 44

16.5.4 泛化inner_ product() 45

16.6 关联容器 45

16.6.1 map 46

16.6.2 map概览 47

16.6.3 另一个map实例 50

16.6.4 unordered-map 51

16.6.5 set 53

16.7 拷贝 54

16.7.1 基本拷贝算法 55

16.7.2 流迭代器 55

16.7.3 使用set保持顺序 57

16.7.4 copy-if 57

16.8 排序和搜索 58

16.9 容器算法 60

简单练习 60

思考题 61

术语 62

习题 62

附言 63

第17章 一个显示模型 64

17.1 为什么要使用图形 64

17.2 一个基本显示模型 65

17.3 第一个例子 66

17.4 使用GUI库 68

17.5 坐标系 69

17.6 Shape 70

17.7 使用Shape类 70

17.7.1 图形头文件和主函数 70

17.7.2 一个几乎空白的窗口 71

17.7.3 坐标轴 73

17.7.4 绘制函数图 74

17.7.5 Polygon 75

17.7.6 Rectangle 76

17.7.7 填充 78

17.7.8 Text 78

17.7.9 Image 80

17.7.10 更多未讨论的内容 81

17.8 让图形程序运行起来 81

17.8.1 源文件 82

简单练习 83

思考题 83

术语 83

习题 84

附言 84

第18章 图形类 85

18.1 图形类概览 85

18.2 Point和Line 87

18.3 Lines 88

18.4 Color 91

18.5 Line-style 93

18.6 Open_polyline 95

18.7 Closed_polyline 96

18.8 Polygon 97

18.9 Rectangle 99

18.10 管理未命名对象 102

18.11 Text 104

18.12 Circle 105

18.13 Ellipse 107

18.14 Marked_polyline 108

18.15 Marks 110

18.16 Mark 111

18.17 Image 112

简单练习 114

思考题 115

术语 115

习题 116

附言 116

第19章 设计图形类 117

19.1 设计原则 117

19.1.1 类型 117

19.1.2 操作 118

19.1.3 命名 119

19.1.4 可变性 120

19.2 Shape 121

19.2.1 一个抽象类 122

19.2.2 访问控制 123

19.2.3 绘制形状 125

19.2.4 拷贝和可变性 127

19.3 基类和派生类 128

19.3.1 对象布局 130

19.3.2 类的派生和虚函数的定义 131

19.3.3 覆盖 131

19.3.4 访问 133

19.3.5 纯虚函数 134

19.4 面向对象程序设计的好处 135

简单练习 136

思考题 136

术语 137

习题 137

附言 138

第20章 绘制函数图和数据图 139

20.1 简介 139

20.2 绘制简单函数图 139

20.3 Function 143

20.3.1 默认参数 143

20.3.2 更多例子 144

20.3.3 lambda表达式 146

20.4 Axis 146

20.5 近似 148

20.6 绘制数据图 152

20.6.1 读取文件 153

20.6.2 一般布局 154

20.6.3 数据比例 155

20.6.4 构造数据图 156

简单练习 158

思考题 159

术语 159

习题 159

附言 160

第21章 图形用户界面 161

21.1 用户界面的选择 161

21.2 “Next”按钮 162

21.3 一个简单的窗口 163

21.3.1 回调函数 164

21.3.2 等待循环 166

21.3.3 lambda表达式作为回调函数 166

21.4 Button和其他Widget 167

21.4.1 Widget 167

21.4.2 Button 168

21.4.3 In_ box和Out box 169

21.4.4 Menu 170

21.5 一个实例 170

21.6 控制流反转 173

21.7 添加菜单 174

21.8 调试GUI代码 178

简单练习 179

思考题 179

术语 180

习题 180

附言 181

第22章 理念和历史 182

22.1 历史、理念和专业水平 182

22.1.1 程序设计语言的目标和哲学 182

22.1.2 编程理念 183

22.1.3 风格/范型 188

22.2 程序设计语言历史概览 190

22.2.1 最早的程序设计语言 191

22.2.2 现代程序设计语言的起源 193

22.2.3 Algol家族 197

22.2.4 Simula 203

22.2.5 C 204

22.2.6 C++ 207

22.2.7 今天 209

22.2.8 参考资料 210

思考题 211

术语 212

习题 212

附言 213

第23章 文本处理 214

23.1 文本 214

23.2 字符串 214

23.3 I/O流 217

23.4 映射 218

23.4.1 实现细节 222

23.5 一个问题 224

23.6 正则表达式的思想 225

23.6.1 原始字符串常量 227

23.7 用正则表达式进行搜索 228

23.8 正则表达式语法 229

23.8.1 字符和特殊字符 230

23.8.2 字符集 230

23.8.3 重复 231

23.8.4 子模式 232

23.8.5 可选项 232

23.8.6 字符集和范围 233

23.8.7 正则表达式错误 234

23.9 使用正则表达式进行模式匹配 235

23.10 参考文献 239

简单练习 239

思考题 239

术语 240

习题 240

附言 241

第24章 数值计算 242

24.1 简介 242

24.2 大小、精度和溢出 242

24.2.1 数值限制 245

24.3 数组 245

24.4 C风格的多维数组 246

24.5 Matrix库 247

24.5.1 矩阵的维和矩阵访问 248

24.5.2 一维矩阵 250

24.5.3 二维矩阵 252

24.5.4 矩阵I/O 253

24.5.5 三维矩阵 254

24.6 实例:求解线性方程组 255

24.6.1 经典的高斯消去法 256

24.6.2 选取主元 257

24.6.3 测试 257

24.7 随机数 258

24.8 标准数学函数 261

24.9 复数 262

24.10 参考文献 263

简单练习 264

思考题 264

术语 265

习题 265

附言 266

第25章 嵌入式系统程序设计 267

25.1 嵌入式系统 267

25.2 基本概念 269

25.2.1 可预测性 271

25.2.2 理想 272

25.2.3 生活在故障中 272

25.3 内存管理 274

25.3.1 动态内存分配存在的问题 274

25.3.2 动态内存分配的替代方法 276

25.3.3 存储池实例 277

25.3.4 栈实例 278

25.4 地址、指针和数组 279

25.4.1 未经检查的类型转换 279

25.4.2 一个问题:不正常的接口 280

25.4.3 解决方案:接口类 282

25.4.4 继承和容器 285

25.5 位、字节和字 287

25.5.1 位和位运算 287

25.5.2 bitset 290

25.5.3 有符号数和无符号数 292

25.5.4 位运算 295

25.5.5 位域 296

25.5.6 实例:简单加密 297

25.6 编码规范 301

25.6.1 编码规范应该是怎样的 302

25.6.2 编码原则实例 303

25.6.3 实际编码规范 307

简单练习 308

思考题 308

术语 310

习题 310

附言 311

第26章 测试 312

26.1 我们想要什么 312

26.1.1 警告 313

26.2 程序正确性证明 313

26.3 测试 313

26.3.1 回归测试 314

26.3.2 单元测试 315

26.3.3 算法和非算法 320

26.3.4 系统测试 325

26.3.5 寻找不成立的假设 326

26.4 测试方案设计 327

26.5 调试 328

26.6 性能 328

26.6.1 计时 329

26.7 参考文献 331

简单练习 331

思考题 331

术语 332

习题 332

附言 333

第27章 C语言 334

27.1 C和C++:兄弟 334

27.1.1 C/C++兼容性 335

27.1.2 C不支持的C++特性 336

27.1.3 C标准库 338

27.2 函数 338

27.2.1 不支持函数名重载 338

27.2.2 函数参数类型检查 339

27.2.3 函数定义 340

27.2.4 C++调用C和C调用C++ 341

27.2.5 函数指针 343

27.3 小的语言差异 344

27.3.1 struct标签名字空间 344

27.3.2 关键字 345

27.3.3 定义 345

27.3.4 C风格类型转换 347

27.3.5 无类型指针的转换 347

27.3.6 枚举 348

27.3.7 名字空间 348

27.4 自由存储空间 349

27.5 C风格字符串 350

27.5.1 C风格字符串和const 352

27.5.2 字节操作 352

27.5.3 实例:strcpy() 353

27.5.4 一个风格问题 353

27.6 输入/输出:stdio 354

27.6.1 输出 354

27.6.2 输入 355

27.6.3 文件 356

27.7 常量和宏 356

27.8 宏 357

27.8.1 类函数宏 358

27.8.2 语法宏 359

27.8.3 条件编译 360

27.9 实例:侵入式容器 360

简单练习 365

思考题 365

术语 366

习题 366

附言 367

附录C 标准库概要 368

附录D 安装FLTK 410

附录E GUI实现 413

术语表 419

参考文献 423

相关图书
作者其它书籍
返回顶部