Boost核心类库精讲

一、课程目标

Boost是由C++标准委员会成员发起、众多C++业界高人参与设计并实现的一个涉及面广、质量高且业已广泛使用的C++标准后备库,其中 TR1已经被纳入C++0x标准库。不论从风格和内容组织上讲,都可以认为Boost项目是C++标准库的延伸。本次课程撷取一系列重要的类库进行深入的讲解,涉及的类库如下:

  • 容器与数据结构;
  • 字符串算法和文字处理;
  • 内存管理相关;
  • 函数对象与高阶编程;
  • I/O
  • 一些实用类库

二、参训要求

参加本次课程的学员须具备以下能力:

  • 熟练掌握C++语法,理解C++面向对象和泛型(模板)机制;

三、课程实践环境

  • 学员自备电脑
  • 实践平台 (以下二者之一):
    • Win32 / Visual Studio 2008 (或更新)
    • Linux 2.6.18+ x86-32 / GCC 4.1.2+ / Eclipse CDT 、vi
  • Boost 1.47.0+

注:在上课之前,学员须搭建好上述开发实践环境,如有困难,可以在开课前通过E-Mail或MSN、QQ等方式与讲师沟通。

四、课程大纲

本次课程由以下几个部分构成:

1、Boost类库概要

  • Boost的发展
  • Boost与C++0x(现在的C++2011标准)
  • Boost类库组织
  • Boost类库的适用范围

2、容器与数据结构

  • array:STL风格的定长数组
  • unordered:基于hash_table的关联容器,hash_map、hash_set、multi_hash_map、multi_hash_set
  • bimap:双向map
  • mutli_array:多维数组
  • pointer container:指针容器
  • property_tree:适合用于读/写配置文件的容器
  • 更多实用数据结构简介

3、字符串算法与文字处理

  • lexical_cast:类型转换的类模板
  • string_algos:字符串算法库,如查找、匹配、替换等操作
  • tokenizer:强大的字符串分割工具
  • regex:强大而易用的正则表达式库,支持perl、sed、awk等正则表达式语法

4、函数对象与高阶编程

  • 回顾std::bind1st()、std::bind2nd()、std::mem_fun()、std::ptr_fun()等适配器
  • bind和mem_fn:C++标准库的binder增强版
  • ref:对象引用的包装器
  • Function:函数概念的泛化,函数对象的包装器,可以实现函数的延迟调用和回调
  • lambda:匿名函数对象,可以很大程度上减少显式定义函数和函数对象的需求
  • signal2:线程安全的Signal-Slot机制 (Publishers → Signals/Subscribers → Slots),即Observer模式的实现;

5、内存管理

  • smart pointers:boost智能指针,scoped_ptr、shared_ptr
  • pool:内存池

6、I/O

  • serializtion:序列化,将C++对象的序列化和反序列化,支持的格式有文本格式、xml格式、以及可移植的二进制格式
  • format:C printf格式的输入/输出格式化操作,拥有更好的类型安全和容错能力
  • iostreams:C++标准库iostream的补充

7、实用类库

  • date_time:日期时间库
  • system:操作系统支持
  • filesystem:可移植的文件系统访问、操作
  • program_options:应用程序命令行参数、选项设置以及获取实用工具
  • timer:定时器

五、时间安排

课程时间:2天,以每天6小时计,具体安排如下:

  • Day1
    • 1 - Boost类库概要
    • 2 - 容器与数据结构
    • 3 - 字符串算法与文字处理
    • 4 - 函数对象与高阶编程
  • Day2
    • 5 - 内存管理
    • 6 - I/O
    • 7 - 实用类库

六、课程资源

可获取的课程资源见:教学资源。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。