zoukankan      html  css  js  c++  java
  • Boost核心类库精讲

    Boost核心类库精讲

    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 - 实用类库

    六、课程资源

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

  • 相关阅读:
    初学Git——命令总结
    CentOS上安装Git及配置远程仓库
    scrapy学习笔记(二)框架结构工作原理
    Scrapy框架的基本组成及功能使用
    网站整站爬取
    使用nginx配置二级域名
    ajaxupload.js调用始终进入error回调
    C scanf 函数的其他使用注意点
    Spring (一 ) 概述与介绍
    MyBatis(三)动态SQL与缓存
  • 原文地址:https://www.cnblogs.com/lexus/p/2565883.html
Copyright © 2011-2022 走看看