码迷,mamicode.com
首页 > 其他好文 > 详细

条目十一《理解自定义分配子的合理用法》

时间:2019-01-12 01:03:20      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:pointer   type   容器   函数   释放   用法   name   根据   block   

条目十一《理解自定义分配子的合理用法》

根据大牛们的测试:

STL默认的内存管理器(allocator

又或者需求不一样时:

1.allocator

由于以上的STL默认的分配子allocator

template<typename T>
class MyAllocator {
    pointer allocate(size_type numObjects, const void* localtyHint = 0)
    {
        ...
    }

    void deallocate(pointer ptrToMemory, size_type numObjects)
    {
        ...
    }
};

typedef DateType int;
typedef vector<DateType, MyAllocator<DateType> > MyVector;

MyVector vec;

通过对allocate和deallocate两个成员函数的重写,就可以达到自定义分配子的目的。

例子:
  • 1.建立一个共享容器内存块。(1.memget申请一块共享内存。2.在共享内存中构造一块内存作为容器的对象存放内存空间。3.析构共享内存里的对象。4.释放共享内存free。)

对于条目十和条目十一,其实掌握的还是一般,后面阅读《stl源码剖析》再深入学习吧。

参考:

《Effective STL》

条目十一《理解自定义分配子的合理用法》

标签:pointer   type   容器   函数   释放   用法   name   根据   block   

原文地址:https://www.cnblogs.com/liangjf/p/10258266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!