STL剖析

2018-03-13  本文已影响0人  卡卡西sisi
STL.jpeg

1, allocator

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


1.JPG

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

2 iterator

利用iterator_trait获得associated type

template <class Ite>
struct iterator_trait
{
  typename Ite::value_type value_type;
}

//partial specification for pointer
template<class T>
struct iterator_trait<T*>
{
  typedef T value_type;
}

3 container Container.jpeg

4, functor

class Fun
{
    bool operator() (){}
};
上一篇 下一篇

猜你喜欢

热点阅读