由於std::set,std::multiset,std::map,std::multimap四種容器的插入刪除操作性能高並且自動排序,在很多時候比如需要動態操作時往往會使用它們,然後由於容器內部使用的是節點,每次的插入或刪除都要調用new或delete,往往容易造成碎片和性能下降,於是自定義的allocator出現了。
這篇文章的目的就是詳細講解std::allocator的內部結構,爲實現自定義的allocator奠基。
貼出STL源碼,通過增加註釋講解
附註:
(1)注意 rebind 結構的使用和作用
(2)Coercion by Member Template 慣用法的使用和作用