
STL
文章平均质量分 80
printfnothing
这个作者很懒,什么都没留下…
展开
-
SGI Allocator内存管理(一)
最近啃了下侯大师的,受益匪浅,研究了下SGI空间配置器的源码,这里总结下它的空间管理策略。SGI Allocator要解决的空间分配问题如下:1.向系统堆(system heap)要求空间。2.考虑多线程(multi-threads)状态。3.考虑内存不足时的应变措施。4.考虑过多“小型区块”可能造成的内存碎片问题。SGI空间配置器分为两级配置器:1.第一级配置器:__malloc_alloc_t原创 2016-01-11 20:41:56 · 573 阅读 · 0 评论 -
SGI Allocator内存管理(二)
接上一篇博文继续讲。我们来看第二级配置器__default_alloc_template.先看它有哪些成员(代码参考自《STL源码剖析》):templateclass __default_alloc_template{private: /*将bytes上调至__ALIGN(默认为8)的倍数*/ static size_t ROUND_UP(size_t bytes){原创 2016-01-13 12:54:36 · 429 阅读 · 0 评论 -
STL之vector
今天研读了下侯大师的《STL源码剖析》关于vector容器的章节,在这里总结下它的数据管理策略以及一些用法上的注意点。以下代码参考自《STL源码剖析》。vector容器属于序列式容器,其数据安排和操作方式,与数组十分相似,但是数组管理的是静态空间,vector对于空间的运用更加灵活。//stl_vector.htemplate class vector{public://v原创 2016-02-27 19:45:03 · 373 阅读 · 0 评论 -
STL list和deque
list:list的内存空间是一个环状的双向链表,如图:(请原谅我拙劣的画图)list node的结构为:template struct __list_node{typedef void* void_pointer;void_pointer prev;void_pointer next;T data;}不同于vector的连续线性空间,list的空间不保原创 2016-03-13 15:16:17 · 736 阅读 · 0 评论