出版社:机械工业出版社
年代:2007
定价:38.0
本书讲解了C++编程的高级技巧。
“C++设计新思维”丛书前言
译者序
前言
第0章入门
0.1注释
0.2#include指令
0.3main函数
0.4花括号
0.5使用标准库来输出
0.6return语句
0.7稍微深入分析“Hello,world!”程序
小结
练习
第1章使用字符串
1.1输入
1.2为名字装框输出
小结
练习
第2章循环和计数
2.1问题
2.2程序的总体结构
2.3输出任意多行
2.3.1while语句
2.3.2设计一个while语句
2.4输出一行
2.4.1输出边界字符
2.4.2输出非边界字符
2.5完整的框架程序
2.5.1简化重复的std::
2.5.2使用for语句来简化
2.5.3精简测试
2.5.4整合结果
2.6计数
小结
练习
第3章使用批量数据
3.1计算学生成绩
3.1.1检测输入的结束
3.1.2循环不变式
3.2使用中值取代平均值
3.2.1用vector保存数据集
3.2.2生成输出
3.2.3值得注意的地方
小结
练习
第4章组织程序和数据
4.1组织计算
4.1.1查找中值
4.1.2重新实现计算最终成绩的方法
4.1.3读取家庭作业成绩
4.1.43种函数形参
4.1.5使用函数来计算学生的成绩
4.2组织数据
4.2.1把一个学生的所有数据集合起来
4.2.2处理学生记录
4.2.3生成报表
4.3把各部分程序连接起来
4.4把计算成绩程序分块
4.5修改后的计算成绩程序
小结
练习
第5章使用序列式容器并分析字符串
5.1把学生分类
5.1.1就地删除元素
5.1.2顺序访问和随机访问
5.2迭代器
5.2.1迭代器类型
5.2.2迭代器操作
5.2.3一些语法知识
5.2.4students.erase(students.begin()+i)的含义
5.3使用迭代器取代索引
5.4重新设计数据结构以获取更好的性能
5.5list类型
5.5.1重要的区别
5.5.2为什么要如此麻烦呢
5.6剖析字符串
5.7检测split函数
5.8连接字符串
5.8.1为一个图案装框
5.8.2纵向连接
5.8.3横向连接
小结
练习
第6章使用库算法
6.1分析字符串
6.1.1分割字符串的另一种方式
6.1.2回文
6.1.3查找URL
6.2比较计算学生成绩的方案
6.2.1处理学生记录
6.2.2分析成绩
6.2.3基于家庭作业成绩的平均值来计算最终成绩
6.2.4已提交的家庭作业成绩的中值
6.3把学生分类并且重新解决一个问题
6.3.1访问两次的解决方案
6.3.2一次访问的解决方案
6.4算法、容器和迭代器
小结
练习
第7章使用关联式容器
7.1支持高效查找的容器
7.2字数统计程序
7.3生成一个交叉引用表
7.4生成句子
7.4.1表示规则
7.4.2读取语法
7.4.3生成一个随机的句子
7.4.4选取一个随机元素
7.5注意性能
小结
练习
第8章编写泛型函数
8.1什么是泛型函数
8.1.1未知类型的中值
8.1.2模板实例化
8.1.3泛型函数和类型
8.2数据结构的独立
8.2.1算法和迭代器
8.2.2顺序只读访问
8.2.3顺序只写访问
8.2.4顺序读写访问
8.2.5可逆访问
8.2.6随机访问
8.2.7迭代器区间和越界值
8.3输入和输出迭代器
8.4使用迭代器来提高灵活性
小结
练习
第9章定义新类型
9.1回顾Student_info
9.2类
9.2.1成员函数
9.2.2非成员函数
9.3保护
9.3.1访问器函数
9.3.2检测对象是否为空
9.4Student_info类
9.5构造函数
9.5.1默认构造函数
9.5.2带有参数的构造函数
9.6使用Student_info类
小结
练习
第10章管理内存和底层数据结构
10.1指针和数组
10.1.1指针
10.1.2指向函数的指针
10.1.3数组
10.1.4指针的算术运算
10.1.5索引
10.1.6数组初始化
10.2再看字符串直接量
10.3初始化字符指针数组
10.4main函数的参数
10.5读写文件
10.5.1标准错误流
10.5.2处理多个输入和输出文件
10.63种内存管理
10.6.1为一个对象分配和释放内存
10.6.2为数组分配并释放内存
小结
练习
第11章定义抽象数据类型
11.1Vec类
11.2实现Vec类
11.2.1内存分配
11.2.2构造函数
11.2.3类型定义
11.2.4索引和大小
11.2.5返回迭代器的操作
11.3复制控制
11.3.1复制构造函数
11.3.2赋值
11.3.3赋值不是初始化
11.3.4析构函数
11.3.5默认操作
11.3.6三者缺一不可的规则
11.4动态Vec对象
11.5灵活的内存管理
小结
练习
第12章使类的对象像数值一样工作
12.1一个简单的string类
12.2自动转换
12.3Str类的操作
12.3.1输入-输出操作符
12.3.2友元
12.3.3其他二元操作符
12.3.4混合类型的表达式
12.3.5定义二元操作符
12.4某些类型转换是危险的
12.5类型转换操作符
12.6类型转换和内存管理
小结
练习
第13章使用继承和动态绑定
13.1继承
13.1.1保护标签
13.1.2操作
13.1.3继承和构造函数
13.2多态和虚函数
13.2.1不知道对象类型的情况下取得对象的值
13.2.2动态绑定
13.2.3回顾
13.3使用继承来解决我们的问题
13.3.1包含(实质上)未知类型的容器
13.3.2虚析构函数
13.4一个简单的句柄类
13.4.1读取句柄
13.4.2复制句柄对象
13.5使用句柄类
13.6精妙之处
13.6.1继承和容器
13.6.2我们需要的是哪个函数
小结
练习
第14章几乎自动的管理内存
14.1复制所指向的对象的句柄
14.1.1一个泛型句柄类
14.1.2使用一个泛型句柄
14.2引用计数句柄
14.3可以决定何时共享数据的句柄
14.4可控制句柄上的一个改进
14.4.1复制不能控制的类型
14.4.2什么时候需要进行复制
小结
练习
第15章再看字符图形问题
15.1设计
15.1.1使用继承来模拟这种结构
15.1.2Pic_base类
15.1.3派生类
15.1.4复制控制
15.2实现
15.2.1实现用户接口
15.2.2String_Pic类
15.2.3填充输出以补齐
15.2.4VCat_Pic类
15.2.5HCat_Pic类
15.2.6Frame_Pic类
15.2.7不要忘记友元声明
小结
练习
第16章如何学习C++
16.1使用已经掌握的知识
16.2学习更多的知识
练习
附录A语言细节
附录B标准库概要
(美) 克尼格, 著
(美) 李普曼 (Lippman,S.B.) , (美) 拉茹瓦 (Lajoie,J.) , (美) 穆 (Moo,B.E.) , 著
(美) 斯蒂芬斯 (Stephens,R.) , 著
( ) 威尔逊 (Wilson,M.) , 著
(美) 利普曼 (Lippman,S.B.) , 著
(美) 罗曼尼克 (Romanik,P.) , (美) 曼特兹 (Muntz,A.) , 编著
(美) 李普曼 (Lippman,S.B.) , 编著
(美) 威尔逊 (Wilson,M.) , 著
(美) 范德沃德 (Vandevoorde,D.) , (德) 约祖蒂斯 (Josuttis,N.M.) , 著