zoukankan      html  css  js  c++  java
  • C++泛型编程与STL高级培训

    C++泛型编程与STL高级培训

    C++泛型编程与STL高级培训

    一、课程目标

    C++作为一门多风格的程序设计语言,除了强大的面向对象支持外,泛型编程(模板机制)的支持更是极大程度上提高了C++的表现能力,现在模板的运用已成为C++类库、应用程序中自然且不可分割的一部分,渗透到各个角落。本次课程将深入、细致的讲解C++模板机制、STL、Boost相关类库的实现思路、手法以及其表现出的智慧,以企通过本次课程的学习,将这些经验自如地用到后续的软件开发中。这次课程关注:

    • C++模板机制
    • STL和Boost部分类库的剖析

    二、参训要求

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

    • 本次课程假定学员有编程经历,使用C/C++、Java或其它语言实际编写过代码;
    • 能熟练使用Windows或Linux下的编译器(如g++)、调试器(如gdb)。

    三、课程实践环境

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

    四、课程大纲

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


    1、C++
    模板机制

    • 关于C++模板
    • 类模板
    • 函数模板
    • 模板实例化
    • 模板参数
    • 使用模板参数指定策略
    • 特征类 (Traits classes)
    • 模板特化
      • 完全特化
      • 部分特化
    • 类模板的派生
    • Curiously Recurring Template Pattern (CRTP)
    • 依赖名字:关键字typename和template的另一种用处


    2、STL
    概要

    • 什么是STL
    • STL组件
      • 容器
      • 算法
      • 迭代器
      • 函数对象
      • 适配器
      • 分配器
    • STL的能力与限制

    3、STL容器

    • 序列容器
      • Vector
      • Deque
      • List
    • 有序关联容器
      • Multisets
      • Sets
      • Multimaps
      • Maps
    • 无序关联容器
      • Unordered Multisets
      • Unordered sets (Hashsets)
      • Unordered Multimaps
      • Unordered maps (Hashmaps)

    4、STL迭代器

    • 关于迭代器
    • 迭代器的操作
    • 迭代器类别
      • Input Iterators
      • Output Iterators
      • Forward Iterators
      • Bi-directional Iterators
      • Random Access Iterators
    • Constant Iterators
    • Reverse Iterator

    5、STL算法

    • STL算法一览
    • 算法类别
    • 各类算法介绍
      • 非修改性算法
      • 修改性算法
      • 排序算法
      • 集合算法
      • 堆算法

    6、预与定义STL函数对象

    • 预定义一元函数对象
    • 预定义二元函数对象
    • 判断式(Predicates)

    7、STL适配器

    • 适配器的概念
    • 容器适配器
      • Stack
      • Queue
    • 迭代器适配器
      • Inserters
    • 函数对象适配器
      • Binders
      • Function Adapters
      • Negaters

    五、时间安排

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

    • Day1
      • 1 - C++ 模板机制
      • 2 - STL 概要
      • 3 - STL容器
    • Day2
      • 4 - STL迭代器
      • 5 - STL算法
      • 6 - 预与定义STL函数对象
      • 7 - STL适配器

    六、课程资源

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

  • 相关阅读:
    bzoj 3027 [Ceoi2004]Sweet——生成函数
    bzoj 3028 食物——生成函数
    JZOJ 5461 购物 —— 贪心
    JZOJ 1003 [ 东莞市选 2007 ] 拦截导弹 —— 递推
    JZOJ 1667 ( bzoj 1801 ) [ AHOI 2009 ] 中国象棋 —— DP
    洛谷 P2055 [ ZJOI 2009 ] 假期的宿舍 —— 二分图匹配
    洛谷 P3398 仓鼠找sugar —— 树链剖分
    洛谷 P1083 [ NOIP 2012 ] 借教室 —— 线段树 / 二分差分数组
    bzoj 3895 取石子 —— 博弈论
    洛谷 P1312 [ NOIP 2011 ] Mayan游戏 —— 搜索+模拟
  • 原文地址:https://www.cnblogs.com/lexus/p/2565886.html
Copyright © 2011-2022 走看看