Union-一物多用

来源:互联网 发布:vm linux系统安装教程 编辑:程序博客网 时间:2024/04/29 21:55

最近刚看《STL源码剖析》,看到SGI STL第二级分配器维护空闲空间的链表,还比较有意思。

一个Union的对像只分配Union中最大的属性的所需的内存。链表中每个结点维护一个内存空间的指针和一个链指针。当该结点的空间被分配出去了,则把它从空闲链表中删除,这样那个链表指针就用不到了,只有内存空间的指针被容器等使用;当一个结点的内存没有被分配出去时,它的空间指针是用不到的,只有链表的指针用得到。这样链表的指针实际上是在该结点维护的待分配的空间中,从需减少为小型对像分配内存时内存管理消耗的空间所占的比例。

原创粉丝点击