意图与逻辑——STL

关联式容器 vs 序列式容器

关联式容器有别于序列式容器的地方的全部原因皆在于,其底层的实现是红黑树(RB-tree),首先是一棵树,一棵平衡二叉搜索树。

  • (1)关联式容器支持 find 成员函数,且搜索元素推荐使用自己的成员函数,而不是 STL 算法中的 find 函数,STL 算法中的 find 是循序搜索;
  • (2)erase() 没有返回值,返回后继对一棵树而言要花费一定的时间。

仿函数

  • (1)所谓仿函数,自然不是函数,但具有函数的功能和属性,
  • (2)一般为重载了括号运算符(operator())的类
  • (3)且该仿函数一般仅有此一个公有的 operator() 函数,不会再有过多的成员变量,乃至其他的成员函数,因为该仿函数一般作为一些算法全局函数的参数,
  • (4)但重载了括号运算符的类可不一定为仿函数

应用场景:

  • (1)作为 set 的第二个模板类型参数,map 的第三个模板类型参数,用以指定排序规则(sorting criterion)

你可能感兴趣的:(意图与逻辑——STL)