我想以派生自的类的形式使用一些符合 C++ std 标准的内存管理std::allocator
,但能够分配内存块并在较小的部分中释放和释放它们。我只找到了 boost::pool,但这在上述意义上不符合标准。周围有什么更有用的,还是我必须自己编写代码?
(请注意,std::allocator
对于分配许多小对象,即使用 . 时,通常是无用的std::list
。)
编辑澄清。
说,我想使用std::list
许多小对象中的一个,然后std::allocator
分配每个对象的实现使用::new
会导致运行时的显着开销(但我认为还有内存)。分配大块对象并一一分发会效率更高。为此,我需要一个std
兼容的分配器(不需要派生自std::allocator
,但必须实现相同的概念),它可以与任何std
库容器一起使用并提供所需的内存管理,理想情况下允许我告诉它有多少个对象我可能会单独分配。