STL - 底层实现
一、STL六大组件
1)容器(Container)
2)算法(Algorithm)
3)迭代器(Iterator)
4)仿函数(Function object)
5)适配器(Adaptor)
6)空间配置器(allocator)
二、容器底层实现
1)vector:底层数据结构为数组 ,支持快速随机访问
2)list:底层数据结构为双向链表,支持快速增删
3)deque:底层数据结构为一个中央控制器和多个缓冲区,支持首尾快速增删,也支持随机访问
4)set:底层数据结构为红黑树,有序,不重复
5)multiset:底层数据结构为红黑树,有序,可重复
6)map:底层数据结构为红黑树,有序,不重复
7)multimap:底层数据结构为红黑树,有序,可重复
8)unordered_set:底层数据结构为hash表,无序,不重复
9)unordered_multiset:底层数据结构为hash表,无序,可重复
10)unordered_map:底层数据结构为hash表,无序,不重复
11)unordered_multimap:底层数据结构为hash表,无序,可重复
12)stack:底层一般用deque、list实现
13)queue:底层一般用deque、list实现
14)priority_queue:底层一般用vector实现,堆heap为处理规则
三、仿函数
1)unary_function:一元仿函数
2)binary_function:二元仿函数
3)bind1st:把二元函数对象绑定成为一元函数对象(绑定第一个参数)
4)bind2nd:把二元函数对象绑定成为一元函数对象(绑定第二个参数)