C++ STL与泛型编程-第四篇 (Boolan)

C++ STL与泛型编程-第四篇 (Boolan)

本章内容:
1 算法的形式
2 迭代器的分类(category)
3 迭代器分类(category)对算法的影响
4 仿函数/函数对象
5 存在多种Adapter

1 算法的形式

  • C++ 标准库的算法如下所示:


    C++ STL与泛型编程-第四篇 (Boolan)_第1张图片
    C++标准库算法

2 迭代器的分类(category)

  • 各种容器的iteratorsiterator_category:

    C++ STL与泛型编程-第四篇 (Boolan)_第2张图片
    iterator_category

  • 各种容器的迭代器分类的打印结果:


    C++ STL与泛型编程-第四篇 (Boolan)_第3张图片
    iterator_category
  • 各种容器的iteratorsiterator_categorytypeid

    C++ STL与泛型编程-第四篇 (Boolan)_第4张图片
    typeid

  • istream_iterator的iterator_category:


    C++ STL与泛型编程-第四篇 (Boolan)_第5张图片
    istream_iterator
  • ostream_iterator的iterator_category:


    C++ STL与泛型编程-第四篇 (Boolan)_第6张图片
    ostream_iterator

3 迭代器分类(category)对算法的影响

C++ STL与泛型编程-第四篇 (Boolan)_第7张图片
iterator_category对算法的影响
C++ STL与泛型编程-第四篇 (Boolan)_第8张图片
iterator_category对算法的影响
  • iterator_category和type traits对算法的影响-copy


    C++ STL与泛型编程-第四篇 (Boolan)_第9张图片
    iterator_category和type traits对算法的影响
  • iterator_category和type traits对算法的影响-destory


    C++ STL与泛型编程-第四篇 (Boolan)_第10张图片
    iterator_category和type traits对算法的影响
  • 算法源码中对iterator_category的"暗示":

    C++ STL与泛型编程-第四篇 (Boolan)_第11张图片
    源码中对iterator_category的暗示

  • 算法accumulate的实现

    C++ STL与泛型编程-第四篇 (Boolan)_第12张图片
    accumulate实现

4 仿函数/函数对象

  • 仿函数functors:
    C++ STL与泛型编程-第四篇 (Boolan)_第13张图片
    functors
C++ STL与泛型编程-第四篇 (Boolan)_第14张图片
仿函数
  • 仿函数functors的可适配(adaptable)条件:
    C++ STL与泛型编程-第四篇 (Boolan)_第15张图片
    adaptable条件

5 存在多种Adapter

C++ STL与泛型编程-第四篇 (Boolan)_第16张图片
多种adapter
  • 容器适配器:stack,queue:

    C++ STL与泛型编程-第四篇 (Boolan)_第17张图片
    容器适配器

  • 函数适配器:binder2nd


    C++ STL与泛型编程-第四篇 (Boolan)_第18张图片
    binder2nd
  • 函数适配器:not1


    C++ STL与泛型编程-第四篇 (Boolan)_第19张图片
    not1
  • 迭代器适配器:reverse_iterator


    C++ STL与泛型编程-第四篇 (Boolan)_第20张图片
    reverse_iterator
  • 迭代器适配器:inserter


    C++ STL与泛型编程-第四篇 (Boolan)_第21张图片
    inserter

你可能感兴趣的:(C++ STL与泛型编程-第四篇 (Boolan))