vector為我們提供了可伸縮的順序存儲容器,在順序和隨機存儲方面效率很高實現vector的關鍵在于實現內存分配和對象構造的分離,一般來講我們直接用new來構造對象就經歷了這兩個過程,而實現vector就需要我們先申請請到一片連續的內存區域,然后在需要時在改內存上構造對象。這里用到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 閱讀(2487) 評論(0) 編輯 收藏 引用 所屬分類: C++