C++程序设计 原理与实践(进阶篇)(原书第2版)pdf

图书网 2018年8月24日14:02:58165.5K5

C++程序设计 原理与实践(进阶篇)(原书第2版) 内容简介

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

C++程序设计 原理与实践(进阶篇)(原书第2版) 目录

出版者的话

译者序

前言

引言

作者简介

第15章容器和迭代器

15.1存储和处理数据

15.1.1处理数据

15.1.2泛化代码

15.2STL理念

15.3序列和迭代器

15.3.1回到实例

15.4链表

15.4.1链袁操作

15.4.2遍历

15.5再次泛化vector

15.5.1遍历容器

15.5.2auto

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

15.6.1处理行

15.6.2遍历

15.7vector、list和string

15.7.1insert和erase

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

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

15.10容器概览

15.10.1迭代器类别

简单练习

思考题

术语

习题

附言

第16章算法和映射

16.1标准库算法

16.2最简单的算法find()

16.2.1一些一般的应用

16.3通用搜索算法findjf()

16.4函数对象

16.4.1函数对象的抽象视图

16.4.2类成员上的断言

16.4.3lambda表达式

16.5数值算法

16.5.1累积

16.5.2泛化accumulate()

16.5.3内积

16.5.4泛化inner_product()

16.6关联容器

16.6.1map

16.6.2map概览

16.6.3另一个map实例

16.6.4unordered_map

16.6.5set

16.7拷贝

16.7.1基本拷贝算法

16.7.2流迭代器

16.7.3使用set保持顺序

16.7.4copy_if

16.8排序和搜索

16.9容器算法

简单练习

思考题

术语

习题

附言

第17章一个显示模型

17.1为什么要使用图形

17.2一个基本显示模型

17.3第一个例子

17.4使用GUI库

17.5坐标系

17.6Shape

17.7使用Shape类

17.7.1图形头文件和主函数

17.7.2一个几乎空白的窗口

17.7.3坐标轴

17.7.4绘制函数图

17.7.5Polygon

17.7.6Rectangle

17.7.7填充

17.7.8Text

17.7.9Image

17.7.10更多未讨论的内容

17.8让图形程序运行起来

17.8.1源文件

简单练习

思考题

术语

习题

附言

第18章图形类

18.1图形类概览

18.2Point和Line

18.3Lines

184Color

185Line_Style

18.6Open_polyline

18.7Closed_polyline

18.8Polygon

18.9Rectangle

18.10管理未命名对象

18.11Text

18.12Circle

18.13Ellipse

18.14Marked_polyline

18.15Marks

18.16Mark

18.17Image

简单练习

思考题

术语

习题

附言

第19章设计图形类

19.1设计原则

19.1.1类型

19.1.2操作

19.1.3命名

19.1.4可变性

19.2Shape

19.2.1一个抽象类

19.2.2访问控制

19.2.3绘制形状

19.2.4拷贝和可变性

19.3基类和派生类

19.3.1对象布局

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

19.3.3覆盖

19.3.4访问

19.3.5纯虚函数

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

简单练习

思考题

术语

习题

附言

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

20.1简介

20.2绘制简单函数图

20.3Function

20.3.1默认参数

20.3.2更多例子

20.3.3lambda表达式

20.4Axis

20.5近似

20.6绘制数据图

20.6.1读取文件

20.6.2一般布局

20.6.3数据比例

20.6.4构造数据图

简单练习

思考题

术语

习题

附言

第21章图形用户界面

21.1用户界面的选择

21.2“Next”按钮

21.3一个简单的窗口

21.3.1回调函数

21.3.2等待循环

21.3.3lambda表达式作为回调函数

21.4Button和其他Widget

21.4.1Wjdget

21.4.2Button

21.4.3In_box和Out_box

21.4.4Menu

21.5一个实例

21.6控制流反转

21.7添加菜单

21.8调试GUI代码

简单练习

思考题

术语

习题

附言

第22章理念和历史

22.1历史、理念和专业水平

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

22.1.2编程理念

22.1.3风格/范型

22.2程序设计语言历史概览

22.2.1最早的程序设计语言

22.22现代程序设计语言的起源

22.2.3Algol家族

22.2.4Simula

22.2.5C

22.2.6C++

22.2.7今天

22.2.8参考资料

思考题

术语

习题

附言

第23章文本处理

23.1文本

23.2字符串

23.3I/O流

23.4映射

23.4.1实现细节

23.5一个问题

23.6正则表达式的思想

23.6.1原始字符串常量

23.7用正则表达式进行搜索

23.8正则表达式语法

23.8.1字符和特殊字符

23.8.2字符集

23.8.3重复

23.8.4子模式

23.8.5可选项

23.8.6字符集和范围

23.8.7正则表达式错误

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

23.10参考文献

简单练习

思考题

术语

习题

附言

第24章数值计算

24.1简介

24.2大小、精度和溢出

24.2.1数值限制

24.3数组

24.4C风格的多维数组

24.5Matrix库

24.5.1矩阵的维和矩阵访问

24.5.2一维矩阵

24.5.3二维矩阵

24.5.4矩阵I/O

24.5.5三维矩阵

24.6实例:求解线性方程组

24.6.1经典的高斯消去法

24.6.2选取主元

24.6.3测试

24.7随机数

24.8标准数学函数

24.9复数

24.10参考文献

简单练习

思考题

术语

习题

附言

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

25.1嵌入式系统

25.2基本概念

25.2.1可预测性

25.2.2理想

25.2.3生活在故障中

25.3内存管理

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

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

25.3.3存储池实例

25.3.4栈实例

25.4地址、指针和数组

25.4.1未经检查的类型转换

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

25.4.3解决方案:接口类

25.4.4继承和容器

25.5位、字节和字

25.5.1位和位运算

25.5.2bitset

25.5.3有符号数和无符号数

25.5.4位运算

25.5.5位域

25.5.6实例:简单加密

25.6编码规范

25.6.1编码规范应该是怎样的

25.6.2编码原则实例

25.6.3实际编码规范

简单练习

思考题

术语

习题

附言

第26章测试

26.1我们想要什么

26.1.1警告

26.2程序正确性证明

26.3测试

26.3.1回归测试

26.3.2单元测试

26.3.3算法和非算法

26.3.4系统测试

26.3.5寻找不成立的假设

26.4测试方案设计

26.5调试

26.6性能

26.6.1计时

26.7参考文献

简单练习

思考题

术语

习题

附言

……

第27章C语言

附录C标准库概要

附录D安装FLTK

附录EGUI实现

术语表

参考文献

C++程序设计 原理与实践(进阶篇)(原书第2版) 精彩文摘

1 5.1存储和处理数据

在处理数据量很大的问题之前,我们先来看一个简单的例子,它说明了解决一般数据处理问题的基本方法。Jack和Jill分别负责测量来往车辆的速度,结果用浮点数来表示。Jack是一个C语言的程序员,所以将测量值保存到一个数组中,而Jill将测量值保存到一个vector对象中。如果我们要在程序中使用他们的数据,该如何操作呢?

我们可以让Jack和Jill的程序将结果分别写到某个文件中,然后再从文件中读人数据。使用这种方法,我们的程序将与Jack和Jill所选用的数据结构和接口彻底无关。通常,这种程序之间的独立性是一种很好的特性,此时我们可以采用第10和11章中介绍的方法来获得输入数据,并利用vector<doubIe>对象来进行计算。

图书网:C++程序设计 原理与实践(进阶篇)(原书第2版)pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:16   其中:访客  16   博主  0
    • 何陋之有
      何陋之有 0

      谢谢

      • 云间小道
        云间小道 0

        谢谢,正好需要

        • yh22222
          yh22222 0

          谢谢

          • suzix
            suzix 1

            非常感谢

            • suzix
              suzix 1

              多谢支持

              • 萌妈
                萌妈 9

                谢谢,正需要

                • li hao
                  li hao 9

                  谢谢

                  • 666
                    666 9

                    谢谢分享

                    • 呵呵
                      呵呵 9

                      下载,学习

                      • xuan
                        xuan 9

                        感谢