STL剖析

STL剖析_第1张图片
STL.jpeg

1, allocator

两级配置方法,128bytes为边界,第一级:malloc/free or new/delete; 第二级:memory pool(free lists)
简单的memory pool 实现:


STL剖析_第2张图片
1.JPG

STL 中分为16个freelists, 每个管理8,16,24 ... 128大小的块

2 iterator

利用iterator_trait获得associated type

template 
struct iterator_trait
{
  typename Ite::value_type value_type;
}

//partial specification for pointer
template
struct iterator_trait
{
  typedef T value_type;
}

3 container
STL剖析_第3张图片
Container.jpeg

  • 红黑树
    • 黑色节点个数一致
    • 红色节点的子节点为黑色
    • root = 黑色

      基本的旋转维护其平衡
      STL剖析_第4张图片
      270025006402285.gif

4, functor

class Fun
{
    bool operator() (){}
};

你可能感兴趣的:(STL剖析)