C 空間配置器

2021-10-02 17:32:53 字數 513 閱讀 3581

空間配置器的作用:

(1)將物件構造和記憶體開闢進行分離。

(2)將物件析構和記憶體釋放進行分離。

空間配置器的主要函式:

1.allocate:進行記憶體的開闢,底層呼叫的就是malloc。

2.deallocate:進行記憶體的釋放,底層呼叫的就是free。

3.construct :使用定位new來負責給容器中的物件進行構造。

4.destroy:負責析構容器中的物件。p->~t()

空間配置器的簡單實現:

template class allocator 

// 負責記憶體釋放

void deallocate(void* p)

// 既可以接收左值也可以接收右值

template void construct(t* p, ty&& val)

// 物件析構

void destroy(t* p)

};

C 空間配置器 Allocator

東陽的學習筆記 空間配置器代表一種特定的記憶體模型,並提供一種抽象概念,以便將對記憶體的申請最終轉化為對記憶體的直接呼叫。就應用程式設計師來說,只需要傳入乙個 template 引數就可以了。配置器提供了乙個介面,包括分配 生成 銷毀和 物件。針對未初始化之記憶體的一些方便好用的函式強烈承諾 要麼全...

空間配置器

普通存放資料的原理 需要空間 new new 申請空間 構造物件 new是將malloc重新封裝的,使用一次malloc,在記憶體中除了會開闢所需空間外,還會額外開闢36個位元組 通過這種形式管理空間可以防止越界訪問 普通方式存放資料是存在缺陷的 1.頻繁的向系統索要小的記憶體塊,會產生記憶體碎片。...

STL 空間配置器

stl有6大元件 容器 演算法 迭代器 仿函式 配接器 分配器。它們之間的密切關係是stl的精髓所在,容器用來存放資料,而容器存在的前提是要有分配器給它分配記憶體,接下來需要實現演算法,迭代器便作為演算法來對容器資料操作的橋梁,演算法可以使用仿函式完成不同的策略變化,配接器可修飾或套接仿函式。說了麼...