條目十一《理解自定義分配子的合理用法》
阿新 • • 發佈:2019-01-12
obj 源碼剖析 共享內存 參考 class dealloc ... hint emp
條目十一《理解自定義分配子的合理用法》
根據大牛們的測試:
STL默認的內存管理器(allocator
又或者需求不一樣時:
1.allocator
由於以上的STL默認的分配子allocator
template<typename T> class MyAllocator { pointer allocate(size_type numObjects, const void* localtyHint = 0) { ... } void deallocate(pointer ptrToMemory, size_type numObjects) { ... } }; typedef DateType int; typedef vector<DateType, MyAllocator<DateType> > MyVector; MyVector vec;
通過對allocate和deallocate兩個成員函數的重寫,就可以達到自定義分配子的目的。
例子:
- 1.建立一個共享容器內存塊。(1.memget申請一塊共享內存。2.在共享內存中構造一塊內存作為容器的對象存放內存空間。3.析構共享內存裏的對象。4.釋放共享內存free。)
對於條目十和條目十一,其實掌握的還是一般,後面閱讀《stl源碼剖析》再深入學習吧。
參考:
《Effective STL》
條目十一《理解自定義分配子的合理用法》