1. 关联容器
关联容器- 关联容器与顺序容器有着根本的不同:关联容器中的元素是按照关键字来保存和访问的。与之相对,顺序容器中的元素是按照它们在容器中的位置来顺讯保存和访问的。
- multi 表示允许重复关键字; map 和 multimap 定义在头文件 map 中,set 和 multiset 定义在头文件 set 中;
一定要知道每种容器迭代器的种类,因为在使用各种算法时,算法会有“暗示”,例如
“暗示”
此算法就需要迭代器是 random access 的, 所以就不能使用。
继承关系4.set 能力与操作
set
5.multiset 能力与操作
multiset
6.map 能力与操作
map
4.multimap 能力与操作
multimap
2. 容器适配器
容器适配器-
stack 操作
stack -
queue 操作
queue
stack
由图可见:这两个特殊容器都是由 deque 进行包装后的适配器。
3. 仿函数
- 所谓 function object (或者说 functor) 是一个定义了 operator() 的对象,因为它是一个对象,像一个函数。
- c++标准库提供了许多预定义的 functor 和 binder ,后者允许合成更多精巧的 functor , 使用这些时,要包含 <functional> 。
- 注意过时的若干适配器 Paste_Image.png 注:最重要的变动是 bind 来替代 bind1st , bind2nd.
- 在c++2.0 中,还可以使用 lambda 替换定制的 functor .
网友评论