STL剖析

作者: 卡卡西sisi | 来源:发表于2018-03-13 21:47 被阅读0次
    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

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

        基本的旋转维护其平衡 270025006402285.gif

    4, functor

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

    相关文章

      网友评论

          本文标题:STL剖析

          本文链接:https://www.haomeiwen.com/subject/jgvbfftx.html