是否有一种通用算法或实现可以使内存池同时适用于 class A
及其派生类?
创建一个仅适用于特定类 A 的 O(1) 内存池相当容易。例如:分配一大块数据,即10*sizeof(A)
,然后在每次需要分配时分配大小为sizeof(A)
的1à block .
当我们还可以考虑具有更大尺寸的 A 的派生类时,是否有如此简单的实现? 谢谢
最佳答案
这实际上取决于您对简单的定义。正如 jack 所说,您可以使用最大派生类的大小作为内存池数组的元素大小。这绝对是一个简单的实现。
如果某些类型的大小是最大类型的一半或更小,您可以修改实现以允许第二个实例占用兼容实例占用的槽。如果适用,这也可以扩展到四分之一尺寸类型。
关于类及其派生类的 C++ 内存池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13405850/