Skip to content

C++ Cookbook - 目录

1. 创建 C++ 程序

1.1 获取和安装 gcc

1.2 从命令行创建简单的 "Hello World"

1.3 从命令行创建静态库

1.4 从命令行创建动态库

1.5 从命令行创建一个复杂的程序

1.6 安装 Boost.Build

1.7 使用 Boost.Build 构建 "Hello World" 程序

1.8 使用 Boost.Build 构建静态库

1.9 使用 Boost.Build 构建动态库

1.10 使用 Boost.Build 构建复杂程序

1.11 使用 IDE 构建静态库

1.12 使用 IDE 构建动态库

1.13 使用 IDE 构建复杂程序

1.14 获取 gnu make

1.15 使用 gnu make 构建 "Hello World" 应用程序

1.16 使用 gnu make 构建 静态库

1.17 使用 gnu make 构建 动态库

1.18 使用 gnu make 构建 应用程序

1.19 定义 Macro

1.20 指定 IDE 的命令行选项

1.21 创建 debug 构建

1.22 创建 release 构建

1.23 指定运行时库变量

1.24 C++标准强制严格一致性

1.25 源文件自动链接到指定的库

1.26 使用导出的模版

2. 代码组织

2.1 确保头文件包含一次

2.2 多文件确保只有一个变量实例

2.3 减少 #include 在先前类的声明

2.4 使用命名空间避免命名冲突

2.5 包含行内文件

3. 数值

3.1 转换字串到数值类型

3.2 转换数值到字串

3.3 测试字串是否包含一个可用的数值

3.4 比较浮点数和精度

3.5 解析字串中的科学计数法

3.6 数值转换

3.7 获取数值中的最大值/最小值

4. 字串和文本

4.1 填充字串

4.2 清空字串

4.3 保存字串到序列中

4.4 获取字串长度

4.5 翻转字串

4.6 分割字串

4.7 标记字符串

4.8 连接序列字串

4.9 查找字串

4.10 查找字串的顺序

4.11 从字串中移出部分字串

4.12 转换字串的大小写

4.13 大小写不敏感的字串对比

4.14 大小写不敏感的字串搜索

4.15 转换文件中的 Tabs 和 Spaces

4.16 行中加入外包括内容

4.17 统计字符, 单词, 行

4.18 统计每个文件的单个单词

4.19 向文字中添加边距

4.20 平均分配文字宽度

4.21 合并文件中的单个空格为一个空格

4.22 自动改动文本改动

4.23 读取逗号分隔的文本

4.24 使用正则表达式来分隔字串

5. 日期和时间

5.1 获取当前日期和时间

5.2 格式化时间/日期为字串

5.3 使用 日期/时间 算法

5.4 通过时区转化时间

5.5 检测给定年份的天数

5.6 定义限制的值

6. 管理数据

6.1 使用 vector 替代 array

6.2 使用有效的 vector

6.3 复制 vector

6.4 在 vector 存储指针

6.5 在列表中存储对象

6.6 遍历字串为其他数据

6.7 使用摘要容器

6.8 根据指定的顺序存储对象

6.9 在容器中存储容器

7. 算法

7.1 通过容器迭代

7.2 从容器中移除对象

7.3 随机刷新数据

7.4 比较范围

7.5 合并数据

7.6 范围排序

7.7 范围分割

7.8 在顺序中优化设置操作

7.9 在排序中转换元素

7.10 写自己的算法

7.11 打印范围到流中

8. 类

8.1 初始化类成员变量

8.2 使用 函数来创建对象

8.3 使用构造器和析构器来管理资源

8.4 自动添加类实例到容器

8.5 确保单复制

8.6 在运行时候决定对象的类型

8.7 检测一个对象的类是否是一个的子类

8.8 给每一个类实例一个唯一标识符

8.9 创建单例

8.10 通过接口基础类来创建接口

8.11 写一个类模板

8.12 写一个成员函数模板

8.13 重载增减操作

8.14 重载算法和复制操作

8.15 调用虚拟函数的子类

9. 异常和安全

9.1 创建异常类

9.2 确保构建安全异常

9.3 确保初始化列表安全异常

9.4 确保成员函数安全异常

9.5 安全复制一个对象

10. 流和文件

10.1 列队文本输出

10.2 格式化浮点输出

10.3 写自己的流调用器

10.4 确保类对流可写

10.5 确保一个流对类可读

10.6 从文件中获取信息

10.7 复制文件

10.8 删除 / 重命名文件

10.9 创建临时文件名和文件

10.10 创建目录

10.11 移除目录

10.12 从目录中读取内容

10.13 从字串中获取文件名扩展

10.14 从路径中获取文件名

10.15 从完整路径/文件名冲获取路径

10.16 替换扩展

10.17 合并两个路径

11. 科学和数学

11.1 计算容器中的数量

11.2 从容器中找出极值

11.3 计算总数/平均数

11.4 共给定的范围中过滤值

11.5 计算方差/标准差和其他统计函数

11.6 生成随机数值

11.7 使用随机数填充容器

11.8 动态数量的 vector

11.9 静态数量的 vector

11.10 计算 a dot 产品

11.11 计算 vector 的规范

11.12 计算 vector 之间的距离

11.13 计算一个大的迭代器

11.14 计算动态矩阵

11.15 计算静态数量矩阵

11.16 矩阵相乘

11.17 计算快速的傅里叶转换

11.18 使用极地坐标计算

11.19 位运算

11.20 大数据运算

11.21 定点数运算

12. 多线程

12.1 创建线程

12.2 线程资源安

12.3 县城通知

12.4 初始化共享资源

12.5 给线程函数传参

13. 国际化

13.1 硬编码 unicode 字串

13.2 读写数字

13.3 读写时间/日期

13.4 读写币种

13.5 排序本地化字串

14. XML

14.1 分析 xml 文档

14.2 使用 xerces 字串解析

14.3 解析复杂的xml

14.4 维护 xml 文档

14.5 验证 xml 文档(DTD)

14.6 通过 schema 解析 xml 文档

14.7 使用 xslt 转换xml文档

14.8 计算 xpath 表达式

14.9 使用 xml 来保存和和恢复对象

15. 其他

15.1 使用回调中的函数指针

15.2 使用指针来调用成员变量

15.3 确保函数不修改参数

15.4 确保成员函数不会修改对象

15.5 不是成员函数的操作写入

15.6 初始化序列, 使用 , 分割的值