是否有一个通用的算法或实现来拥有一个可以在class A
及其派生类上运行的内存池?
创建一个仅在特定类A中在O(1)中工作的内存池相当容易。例如:分配一大块数据,即10*sizeof(A)
,然后在每次需要分配时给出大小为sizeof(A)
的1à块。
当我们还可以考虑具有更大尺寸的A的派生类时,是否有这么简单的实现? 感谢
答案 0 :(得分:1)
这实际上取决于你对简单的定义是什么。正如Jack所说,您可以使用最大派生类的大小作为内存池数组的元素大小。这绝对是一个简单的实现。
如果某些类型的大小是最大类型的一半或更小,则可以修改实现以允许第二个实例占用占用兼容实例的插槽。如果适用,也可以扩展到四分之一大小类型。