由于std::set,std::multiset,std::map,std::multimap四种容器的插入删除操作性能高并且自动排序,在很多时候比如需要动态操作时往往会使用它们,然后由于容器内部使用的是节点,每次的插入或删除都要调用new或delete,往往容易造成碎片和性能下降,于是自定义的allocator出现了。
这篇文章的目的就是详细讲解std::allocator的内部结构,为实现自定义的allocator奠基。
贴出STL源码,通过增加注释讲解
由于std::set,std::multiset,std::map,std::multimap四种容器的插入删除操作性能高并且自动排序,在很多时候比如需要动态操作时往往会使用它们,然后由于容器内部使用的是节点,每次的插入或删除都要调用new或delete,往往容易造成碎片和性能下降,于是自定义的allocator出现了。
这篇文章的目的就是详细讲解std::allocator的内部结构,为实现自定义的allocator奠基。
贴出STL源码,通过增加注释讲解