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

时间:2012-11-15 20:42:27

标签: c++ memory memory-management

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

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

1 个答案:

答案 0 :(得分:1)

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

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