GeekBand STL与泛型编程 -- 2

1. 关联容器

关联容器
  1. 关联容器与顺序容器有着根本的不同:关联容器中的元素是按照关键字来保存和访问的。与之相对,顺序容器中的元素是按照它们在容器中的位置来顺讯保存和访问的。
  2. multi 表示允许重复关键字; map 和 multimap 定义在头文件 map 中,set 和 multiset 定义在头文件 set 中;
迭代器种类

一定要知道每种容器迭代器的种类,因为在使用各种算法时,算法会有“暗示”,例如


“暗示”

此算法就需要迭代器是 random access 的, 所以就不能使用。

继承关系

4.set 能力与操作


set

5.multiset 能力与操作


multiset

6.map 能力与操作


map

4.multimap 能力与操作


multimap

2. 容器适配器

容器适配器
  1. stack 操作


    stack
  2. queue 操作


    queue
queue

stack

由图可见:这两个特殊容器都是由 deque 进行包装后的适配器。

3. 仿函数

  1. 所谓 function object (或者说 functor) 是一个定义了 operator() 的对象,因为它是一个对象,像一个函数。
  2. c++标准库提供了许多预定义的 functor 和 binder ,后者允许合成更多精巧的 functor , 使用这些时,要包含 <functional> 。
  3. 注意过时的若干适配器
    Paste_Image.png
    注:最重要的变动是 bind 来替代 bind1st , bind2nd.
  4. 在c++2.0 中,还可以使用 lambda 替换定制的 functor .
注: 笔记中基本所有截图都来自于 www.cpluscplus.com
注: 下周笔记统一讲算法。

推荐阅读更多精彩内容