Boost程序库完全开发指南
Boost程序库完全开发指南封面图

Boost程序库完全开发指南

罗剑锋, 著

出版社:电子工业出版社

年代:2014

定价:99.0

书籍简介:

Boost由C++标准委员会部分成员所设立的Boost社区开发并维护,使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简捷、优雅、灵活和高效。本书基于2014年11月发布的Boost 1.57版,介绍了其中的所有129个库,并且结合C++11/14标准详细、深入地讲解了其中数十个库,同时实现了若干颇具实用价值的工具类和函数。

书籍目录:

目录第0章 导读10.1 关于本书10.2 读者对象10.3 术语与风格20.4 C++标准30.5 本书的结构40.6 如何阅读本书50.7 本书的源码5第1章 Boost程序库总论71.1 关于Boost71.1.1 获取方式81.1.2 目录结构81.1.3 使用方式91.2 开发环境91.2.1 操作系统和编译器101.2.2 快捷安装Boost101.2.3 完全安装Boost101.2.4 定制安装Boost111.2.5 验证开发环境111.3 构建工具121.3.1 安装b2121.3.2 构建脚本121.3.3 构建语言131.3.4 构建命令141.4 总结14第2章 时间与日期152.1 timer库概述152.2 timer162.2.1 用法162.2.2 类摘要172.2.3 使用建议182.3 progress_timer182.3.1 用法182.3.2 类摘要192.4 progress_display202.4.1 类摘要202.4.2 用法212.4.3 注意事项222.5 date_time库概述232.5.1 编译与使用242.5.2 基本概念242.6 处理日期252.6.1 日期252.6.2 创建日期对象262.6.3 访问日期272.6.4 日期的输出282.6.5 转换tm结构292.6.6 日期长度292.6.7 日期运算312.6.8 日期区间322.6.9 日期区间运算332.6.10 日期迭代器352.6.11 其他功能362.6.12 综合运用362.7 处理时间392.7.1 时间长度392.7.2 操作时间长度402.7.3 时间长度的精确度422.7.4 时间点432.7.5 创建时间点对象442.7.6 操作时间点对象452.7.7 转换tm/time_t结构462.7.8 时间区间462.7.9 时间迭代器472.7.10 综合运用472.8 date_time库的高级议题502.8.1 编译配置宏502.8.2 自定义字面值512.8.3 格式化时间512.8.4 本地时间522.8.5 序列化542.9 总结54第3章 内存管理573.1 smart_ptr库概述573.1.1 RAII机制573.1.2 智能指针583.2 scoped_ptr593.2.1 类摘要593.2.2 操作函数603.2.3 用法613.2.4 对比unique_ptr633.2.5 make_unique643.3 scoped_array653.3.1 类摘要653.3.2 用法663.3.3 对比unique_ptr663.3.4 使用建议673.4 shared_ptr683.4.1 类摘要683.4.2 操作函数693.4.3 用法703.4.4 工厂函数723.4.5 应用于标准容器733.4.6 应用于桥接模式743.4.7 应用于工厂模式753.4.8 定制删除器773.4.9 高级议题783.5 shared_array823.5.1 类摘要823.5.2 用法823.6 weak_ptr833.6.1 类摘要833.6.2 用法843.6.3 enable_shared_from_this853.6.4 enable_shared_from_raw863.6.5 打破循环引用883.7 intrusive_ptr893.7.1 类摘要893.7.2 用法903.7.3 引用计数器913.8 pool库概述923.9 pool 933.9.1 类摘要933.9.2 操作函数943.9.3 用法953.10 object_pool953.10.1 类摘要963.10.2 操作函数963.10.3 用法973.10.4 使用更多的构造参数973.11 singleton_pool993.11.1 类摘要993.11.2 用法993.12 pool_alloc1003.13 总结101第4章 实用工具1034.1 noncopyable1034.1.1 原理1044.1.2 用法1044.1.3 实现1054.2 ignore_unused1064.2.1 基本用法1064.2.2 模板用法1074.3 optional1084.3.1 类摘要1084.3.2 操作函数1094.3.3 用法1114.3.4 工厂函数1124.4 assign1134.4.1 list_inserter1134.4.2 使用operator+=1144.4.3 使用operator ()1154.4.4 generic_list1164.4.5 初始化容器 1174.4.6 减少重复输入1194.4.7 操作非标准容器1204.4.8 其他议题1214.5 swap1224.5.1 原理1224.5.2 交换数组1234.5.3 特化std::swap1244.5.4 特化ADL可找到的swap1254.5.5 使用建议1264.6 singleton1264.6.1 类摘要1264.6.2 用法1274.7 tribool1284.7.1 类摘要1294.7.2 用法1304.7.3 为第三态更名1314.7.4 输入/输出1314.7.5 与optional<bool>的区别1324.8 operators1334.8.1 基本运算概念1344.8.2 算术操作符的用法1354.8.3 基类链1374.8.4 复合运算概念1384.8.5 相等与等价1404.8.6 解引用操作符1414.8.7 下标操作符1424.8.8 bool转型操作符1434.8.9 二元操作符1454.9 exception1454.9.1 标准库中的异常1464.9.2 类摘要1464.9.3 向异常传递信息1484.9.4 错误信息类1494.9.5 包装标准异常1514.9.6 使用函数抛出异常1524.9.7 获得更多的调试信息1524.9.8 高级议题1544.10 uuid1554.10.1 类摘要1564.10.2 用法1574.10.3 生成器1584.10.4 增强的uuid类1604.10.5 转换字符串1624.10.6 SHA1摘要算法1634.11 config1644.11.1 BOOST_STRINGIZE1644.11.2 BOOST_STATIC_CONSTANT1654.12 utility1654.12.1 BOOST_BINARY1654.12.2 BOOST_CURRENT_FUNCTION1674.13 总结168第5章 字符串与文本处理1715.1 lexical_cast1715.1.1 函数声明1725.1.2 用法1725.1.3 错误处理1735.1.4 对转换对象的要求1745.1.5 应用于自定义类1755.1.6 对比C++11标准1765.2 format1775.2.1 简单的例子1785.2.2 输入操作符%1795.2.3 类摘要1805.2.4 格式化语法1825.2.5 format的性能1835.2.6 高级用法1835.3 string_ref1845.3.1 类摘要1855.3.2 用法1865.4 string_algo1885.4.1 简单的例子1885.4.2 string_algo概述1895.4.3 大小写转换1905.4.4 判断式(算法)1915.4.5 判断式(函数对象)1935.4.6 分类1935.4.7 修剪1945.4.8 查找1955.4.9 替换与删除1975.4.10 分割1995.4.11 合并2005.4.12 查找(分割)迭代器2015.5 tokenizer2035.5.1 类摘要2035.5.2 用法2045.5.3 分词函数对象2045.5.4 char_separator2055.5.5 escaped_list_separator2065.5.6 offset_separator2075.5.7 tokenizer库的缺陷2085.6 xpressive2105.6.1 两种使用方式2105.6.2 正则表达式语法简介2115.6.3 类摘要2125.6.4 正则匹配2145.6.5 正则查找2175.6.6 正则替换2185.6.7 正则迭代2195.6.8 正则分词2215.6.9 对比boost.regex2225.6.10 高级议题2235.7 总结225第6章 正确性与测试2276.1 assert2276.1.1 基本用法2276.1.2 禁用断言2296.1.3 扩展用法2296.2 static_assert2316.2.1 定义2316.2.2 用法2316.2.3 使用建议2336.3 lightweight_test2336.3.1 测试断言2336.3.2 用法2346.3.3 测试元编程2356.4 test2356.4.1 最小化的测试套件2366.4.2 单元测试框架简介2376.4.3 测试断言2386.4.4 测试用例与测试套件2396.4.5 测试实例2406.4.6 测试夹具2426.4.7 测试日志2446.4.8 运行参数2456.4.9 函数执行监视器2466.4.10 程序执行监视器2496.4.11 高级议题2496.5 总结251第7章 容器与数据结构2537.1 array2537.1.1 类摘要2547.1.2 操作函数2547.1.3 用法2557.1.4 能力限制2567.1.5 初始化2577.1.6 零长度的数组2577.1.7 对比C++11标准2587.2 dynamic_bitset2587.2.1 类摘要2597.2.2 创建与赋值2607.2.3 容器操作2617.2.4 位运算与比较运算2627.2.5 访问元素2637.2.6 类型转换2647.2.7 集合操作2657.2.8 综合运用2657.3 unordered2677.3.1 散列集合简介2677.3.2 散列集合的用法2697.3.3 散列映射简介2717.3.4 散列映射的用法2727.3.5 高级议题2747.4 bimap2767.4.1 类摘要2767.4.2 基本用法2777.4.3 值的集合类型2787.4.4 集合类型的用法2797.4.5 使用标签类型2817.4.6 使用assign库2827.4.7 查找与替换2837.4.8 投射2857.4.9 高级议题2857.5 circular_buffer2867.5.1 类摘要2877.5.2 用法2887.5.3 环形缓冲区2887.5.4 空间优化型缓冲区2907.6 tuple2907.6.1 最简单的tuple:pair2917.6.2 类摘要2927.6.3 创建与赋值2927.6.4 访问元素2937.6.5 比较操作2957.6.6 输入输出2957.6.7 联结变量2967.6.8 应用于assign库2977.6.9 应用于exception库2987.6.10 内部结构2987.6.11 使用访问者模式2997.6.12 高级议题3017.7 any3037.7.1 类摘要3037.7.2 访问元素3047.7.3 用法3057.7.4 简化的操作函数3067.7.5 保存指针3077.7.6 输出3087.7.7 应用于容器3097.8 variant3107.8.1 类摘要3107.8.2 访问元素3117.8.3 用法3127.8.4 访问器3137.8.5 与any的区别3157.8.6 高级议题3167.9 multi_array3177.9.1 类摘要3187.9.2 用法3197.9.3 改变形状和大小3217.9.4 创建子视图3217.9.5 适配普通数组3237.9.6 高级议题3247.10 property_tree3267.10.1 类摘要3277.10.2 读取配置信息3287.10.3 写入配置信息3307.10.4 更多用法3317.10.5 XML数据格式3327.10.6 其他数据格式3337.10.7 高级议题3357.11 总结336第8章 算法3398.1 foreach3398.1.1 用法3408.1.2 详细解说3418.1.3 更优雅的名字3428.1.4 支持的序列类型3438.1.5 存在的问题3448.2 minmax3448.2.1 用法3458.2.2 存在的问题3458.3 minmax_element3468.3.1 用法3468.3.2 其他函数的用法3478.4 algorithm3488.4.1 clamp3488.4.2 clamp_range3498.4.3 hex和unhex3498.5 总结350第9章 数学与数字3539.1 math.constants3539.1.1 基本用法3549.1.2 高级用法3559.2 integer3559.2.1 integer_traits3559.2.2 标准整数类型3579.2.3 整数类型模板类3599.3 rational3629.3.1 类摘要3629.3.2 创建与赋值3639.3.3 算术运算与比较运算3649.3.4 类型转换3659.3.5 输入输出3659.3.6 分子与分母3659.3.7 与数学函数配合工作3669.3.8 rational的精确度3669.3.9 最大公约数和最小公倍数3669.4 ratio3679.4.1 类摘要3679.4.2 用法3689.4.3 数字单位3699.4.4 字符串表示3719.4.5 对比C++11标准3729.5 crc3729.5.1 类摘要3729.5.2 预定义的实现类3739.5.3 用法3739.6 random3759.6.1 随机数发生器3759.6.2 随机数发生器的拷贝3779.6.3 随机数分布器3779.6.4 随机数分布器类摘要3789.6.5 随机数分布器用法3819.6.6 变量发生器3829.6.7 产生随机数据块3839.6.8 真随机数发生器3849.6.9 实现真随机数发生器3859.7 总结387第10章 操作系统相关38910.1 system38910.1.1 错误值枚举39010.1.2 错误类别39010.1.3 错误代码39210.1.4 错误异常39410.2 chrono39510.2.1 时间长度39510.2.2 使用时间长度39610.2.3 时钟39810.2.4 时间点40010.2.5 综合运用40210.3 cpu_timer40410.3.1 时间类型40410.3.2 cpu_timer40510.3.4 auto_cpu_timer40610.3.5 定制输出格式40710.4 filesystem40810.4.1 类摘要40910.4.2 路径表示41110.4.3 可移植的文件名41210.4.4 路径处理41310.4.5 异常处理41510.4.6 文件状态41610.4.7 文件属性41810.4.8 文件操作41910.4.9 迭代目录42010.4.10 实例1:实现查找文件功能42310.4.11 实例2:实现模糊查找文件功能42410.4.12 实例3:实现拷贝目录功能42610.4.13 文件流操作42710.5 program_options42810.5.1 概述42910.5.3 选项值43110.5.4 选项描述器43210.5.5 选项描述器的用法43310.5.6 分析器43510.5.7 存储器43610.5.8 使用位置选项值43710.5.9 分析环境变量43910.5.10 分组选项信息44010.5.11 高级用法44210.6 总结445第11章 函数与回调44711.1 ref44711.1.1 类摘要44811.1.2 基本用法44911.1.3 工厂函数45011.1.4 操作包装45011.1.5 综合应用45111.1.6 对比C++11标准45211.2 bind45311.2.1 工作原理45411.2.2 绑定普通函数45511.2.3 绑定成员函数45611.2.4 绑定成员变量45811.2.5 绑定函数对象45811.2.6 使用ref库45911.2.7 对比C++11标准46011.2.8 高级议题46011.3 function46311.3.1 类摘要46411.3.2 function的声明46511.3.3 操作函数46511.3.4 比较操作46611.3.5 用法46611.3.6 使用ref库46811.3.7 用于回调46911.3.8 对比C++11的auto47111.3.9 对比std::function47211.4 signals247211.4.1 类摘要47311.4.2 操作函数47411.4.3 插槽的连接与调用47511.4.4 信号的返回值47711.4.5 合并器47711.4.6 管理信号的连接47911.4.7 更灵活的管理信号连接48011.4.8 自动连接管理48311.4.9 应用于观察者模式48511.4.10 高级议题48811.5 总结492第12章 并发编程49512.1 atomic49512.1.1 类摘要49612.1.2 基本用法49812.1.3 整数atomic的用法49912.1.4 并发顺序一致性50012.2 thread50312.2.1 mutex50312.2.2 lock_guard50612.2.3 unique_lock50712.2.4 lock适配器51012.2.5 lockable概念检查类51212.2.6 lock函数51212.2.7 thread51312.2.8 使用线程51512.2.9 中断线程51812.2.10 thread_group52112.2.11 call_once52212.2.12 条件变量52312.2.13 shared_mutex52712.2.14 future52912.2.15 shared_future53312.2.16 高级议题53412.3 asio53612.3.1 概述53712.3.2 UNIX信号54312.3.3 定时器54912.3.4 网络通信概述55412.3.5 同步TCP通信56012.3.6 异步TCP通信56212.3.7 解析网络地址56812.3.8 协程57012.3.9 其他议题57312.4 总结577第13章 Boost组件速览57913.1 算法57913.2 字符串和文本处理58013.3 容器与数据结构58013.4 迭代器58113.5 函数对象与高级编程58213.6 泛型编程58313.7 模板元编程58513.8 预处理元编程58513.9 并发编程58613.10 数学与数字58713.11 TR1实现58813.12 输入输出58813.13 C++11特性模拟实现58813.14 杂项58913.15 总结591第14章 Boost与设计模式59314.1 创建型模式59414.2 结构型模式59514.3 行为模式59814.4 其他模式60114.5 总结603第15章 结束语60515.1 未臻完美的Boost60515.2 让Boost工作得更好60615.3 工夫在诗外60815.4 临别赠言610附录A 推荐书目611附录B C++标准简述613附录C C++关键字浅谈617

内容摘要:

基于2014年11月发布的Boost 1.57版,介绍了其中的所有129个库。  国人原创精品  C++开发的好帮手  C++专家的优秀学习教材  深入解析Boost库的内部实现  内容丰富、组织得当、概念清晰、讲解细致,是广大C++程序员和爱好者的必备好书。Boost是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库,有着“C++‘准’标准库”的美誉。Boost由C++标准委员会部分成员所设立的Boost社区开发并维护,使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简捷、优雅、灵活和高效。本书基于2014年11月发布的Boost 1.57版,介绍了其中的所有129个库,并且结合C++11/14标准详细、深入地讲解了其中数十个库,同时实现了若干颇具实用价值的工具类和函数,可帮助读者迅速地理解、掌握Boost的用法并应用于实际的开发工作。【作者简介】罗剑锋(网名Chrono)1996年就读于东北财经大学1997年开始接触C/C++1998年参加计算机软件专业技术资格和水平考试,获高级程序员资质2003年毕业于北京理工大学,获计算机专业硕士学位目前任项目经理,主要研究方向为C/C++、设计模式、密码学、数据库、嵌入式系统开发业余爱好是阅读、欣赏音乐和旅游

书籍规格:

书籍详细信息
书名Boost程序库完全开发指南站内查询相似图书
9787121253133
如需购买下载《Boost程序库完全开发指南》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次3版印次1
定价(元)99.0语种简体中文
尺寸24 × 19装帧平装
页数印数

书籍信息归属:

Boost程序库完全开发指南是电子工业出版社于2015.2出版的中图分类号为 TP312-62 的主题关于 C语言-程序设计-指南 的书籍。