必须要注意的C++动态内存资源管理(六)vector的简单实现.docVIP

  • 1
  • 0
  • 约1.01万字
  • 约 8页
  • 2017-07-21 发布于浙江
  • 举报

必须要注意的C++动态内存资源管理(六)vector的简单实现.doc

必须要注意的C动态内存资源管理(六)vector的简单实现

必须要注意的C++动态内存资源管理(六)vector的简单实现 myVector分析 我们知道,vector类将其元素存放在连续的内存中。为了获得可接受的性能,vetor预先分配足够大的内存来保存可能需要的更多元素。vector的每个添加元素的成员函数会检查是否有空间容纳更多的元素。如果有,成员函数会在下一个可用位置构造一个对象。如果没有可用空间,vector就会重新分配空间;它获得新的空间,将已有元素移动到新空间中,释放旧空间,并添加新元素。 既然是动态开辟的内存,于是我们在myVector中使用动态数组来存储,而每次插入元素的时候需要先判断开辟的内存是否已满,如果满了需要重新分配内存。 下面给出最初版本的代码: //myVector.h #include memory templatetypename t= class myVector { public: typedef myVectort _Myt; myVector() : elements(nullptr), first_free(nullptr), cap(nullptr){} // allocator成员进行默认初始化 myVector(const _Myt); _Myt operator=(const _Myt); ~myVector(); T

文档评论(0)

1亿VIP精品文档

相关文档