c ++ - 自定义内存管理器抽象

时间:2014-03-25 05:40:42

标签: c++ memory-management stl abstraction

我正在开发的项目需要自定义内存管理,因为它使用了大量的分配和解除分配。我需要实现类似堆栈的内存和一些自定义堆类内存,这些内存可以快速应用于我的应用程序。另外,我需要STL容器尽可能使用这些自定义分配器。

目前,我不熟悉实施自定义内存管理器的最佳做法,我还有其他优先事项可供选择。

因此,鉴于上述要求,我正在寻找一种优雅的方式来抽象内存管理内部,以便它现在只需使用newdelete,并在需要时,可以更改为自定义分配器而不必担心吗?

请原谅我使用错误的术语!

2 个答案:

答案 0 :(得分:3)

C ++中自定义内存分配器的标准接口是Allocator concept

默认实现std::allocator使用newdelete,但您可以在以后提供自己的实现,如果您符合界面,则可以将其与标准集合一起使用。< / p>

答案 1 :(得分:0)

你可以编写一个函数或类来提供像Pool::New() and Pool::Delete()这样的两个函数,并使用原始new and delete实现,并在你准备好时真正设计它。

可能需要一些简单的模板技术。只是模板化了(成员)函数。