[英]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.