我正在开发的项目需要自定义内存管理,因为它使用了大量的分配和解除分配。我需要实现类似堆栈的内存和一些自定义堆类内存,这些内存可以快速应用于我的应用程序。另外,我需要STL容器尽可能使用这些自定义分配器。
目前,我不熟悉实施自定义内存管理器的最佳做法,我还有其他优先事项可供选择。
因此,鉴于上述要求,我正在寻找一种优雅的方式来抽象内存管理内部,以便它现在只需使用new
和delete
,并在需要时,可以更改为自定义分配器而不必担心吗?
请原谅我使用错误的术语!
答案 0 :(得分:3)
C ++中自定义内存分配器的标准接口是Allocator concept。
默认实现std::allocator
使用new
和delete
,但您可以在以后提供自己的实现,如果您符合界面,则可以将其与标准集合一起使用。< / p>
答案 1 :(得分:0)
你可以编写一个函数或类来提供像Pool::New() and Pool::Delete()
这样的两个函数,并使用原始new and delete
实现,并在你准备好时真正设计它。
可能需要一些简单的模板技术。只是模板化了(成员)函数。