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

    六、课程资源

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

  • 相关阅读:
    2、容器初探
    3、二叉树:先序,中序,后序循环遍历详解
    Hebbian Learning Rule
    论文笔记 Weakly-Supervised Spatial Context Networks
    在Caffe添加Python layer详细步骤
    论文笔记 Learning to Compare Image Patches via Convolutional Neural Networks
    Deconvolution 反卷积理解
    论文笔记 Feature Pyramid Networks for Object Detection
    Caffe2 初识
    论文笔记 Densely Connected Convolutional Networks
  • 原文地址:https://www.cnblogs.com/lexus/p/2565883.html
Copyright © 2011-2022 走看看