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 阅读(2466) 评论(0) 编辑 收藏 引用 所属分类: C++