stl六大组件
- 容器
- 迭代器
- 算法
- 仿函数
- 容器配接器
- 空间分配器
事例
假如要对vector<int> 进行排序,
sort(__wrap_iter<_Tp*> __first, __wrap_iter<_Tp*> __last, _Compare __comp)
{
typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;
_VSTD::sort<_Tp*, _Comp_ref>(__first.base(), __last.base(), __comp);
}
first,last为迭代器,__comp为仿函数,sort默认排序为从小到大,但是加上仿函数后,可以实现任意的排序方式,所以一个排序,就接触到了容器,算法,仿函数,迭代器,空间分配器的概念。
空间配接器是做什么的?其实就是对容器的接口进行修改,达到一种容器的变形目的,比如stack就是deque的配接器。
容器
容器分为顺序容器和关联容器,关联容器又分为有序容器和无序容器。有序容器底层实现一般都是红黑树,比如map, set。
网友评论