类的C++内存池及其派生类

lez*_*lon 5 c++ memory memory-management

是否有一个通用的算法或实现来拥有一个内存池,它既适用于a class A及其派生类?创建一个仅在特定类A中在O(1)中工作的内存池相当容易.例如:分配大量数据,即每次需要分配时10*sizeof(A),然后给出1à块大小sizeof(A).

当我们还可以考虑具有更大尺寸的A的派生类时,是否有这么简单的实现?谢谢

Jos*_*man 1

这实际上取决于您对简单的定义是什么。正如杰克所说,您可以使用派生类中最大的大小作为内存池数组的元素大小。这绝对是一个简单的实现。

如果某些类型的大小是最大类型的一半或更小,您可以修改实现以允许第二个实例占用兼容实例占用的插槽。如果适用的话,也可以扩展到四分之一尺寸类型。