cache_freelist 類別
定義區塊配置器以配置及解除配置單一大小的記憶體區塊。
語法
template <std::size_t Sz, class Max>
class cache_freelist
參數
Sz
要配置的陣列元素數目。
Max
表示可用清單大小上限的 max 類別。 可以是 max_fixed_size、max_none、max_unbounded 或 max_variable_size。
備註
cache_freelist類別範本會維護大小 Sz 的記憶體區塊可用清單。 當免費清單已滿時,它會使用 運算子 delete 來解除分配記憶體區塊。 當可用清單是空的時,它會使用 運算子 new 來配置新的記憶體區塊。 免費清單的大小上限取決於在 Max 參數中傳遞的類別 max 類別。
每個記憶體區塊都會保留 Sz 位元組的可用記憶體,以及運算元 new 和 operator delete 所需的數據。
建構函式
建構函式 | 描述 |
---|---|
cache_freelist | 建構類型 cache_freelist 的物件。 |
成員函式
成員函數 | 描述 |
---|---|
allocate | 配置記憶體區塊。 |
deallocate | 從指定位置起算的儲存體中,釋放指定數目的物件。 |
需求
Header:<allocators>
命名空間: stdext
cache_freelist::allocate
配置記憶體區塊。
void *allocate(std::size_t count);
參數
計數
要配置的陣列元素數目。
傳回值
所配置物件的指標。
備註
cache_freelist::cache_freelist
建構類型 cache_freelist
的物件。
cache_freelist();
備註
cache_freelist::d eallocate
從指定位置起算的儲存體中,釋放指定數目的物件。
void deallocate(void* ptr, std::size_t count);
參數
ptr
要從儲存體解除配置之第一個物件的指標。
計數
要從儲存空間解除配置的物件數目。