[英]How should a C++ allocator handle its allocated memory when it is destroyed/copied/moved?
我目前正在编写一个应该由C ++标准数据结构使用的分配器,即,它实现了分配器的概念。
分配器非常简单:它分配x
对象的块,如果当前块未满,则始终分发下一个对象,否则分配一个新的块。
现在我的问题是:当分配器被销毁/复制/移动时,如何处理这些块? 分配器概念没有说明在这些情况下必须发生的情况。
这是我的想法:
我的假设正确吗? 如果没有,那么为什么在何处定义?
分配器通常是轻量级的对象,可以在周围复制和销毁,例如在标准容器类中。 因此,他们不应该自己执行繁重的内存管理,而应将其中继给其他一些永久性的内存管理器对象。 如果这样做,则内存块的生存期不取决于分配程序的生存期,而是取决于内存管理器对象的生存期。 因此,一生的想法必须应用于两种类型的对象:
分配器 (寿命短):
内存管理器 (使用寿命长):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.