vector為我們提供了可伸縮的順序存儲容器,在順序和隨機存儲方面效率很高實現(xiàn)vector的關鍵在于實現(xiàn)內存分配和對象構造的分離,一般來講我們直接用new來構造對象就經(jīng)歷了這兩個過程,而實現(xiàn)vector就需要我們先申請請到一片連續(xù)的內存區(qū)域,然后在需要時在改內存上構造對象。這里用到allocator模板類該類內部封裝了如下方法:template<typename elm>class allocator{elm *allocate(size_t n) //分配n個對象存儲空間void construct(elm* p,size_t n) //在以p為開始的內存上構造n個對象void destroy(elm* p) //銷毀對象void deallocate(elm*p,size_t n) //釋放從p開始的n個對象內存
posted on 2009-08-12 15:46 pear_li 閱讀(2508) 評論(0) 編輯 收藏 引用 所屬分類: C++