- 1
- 0
- 约1.01万字
- 约 8页
- 2017-07-21 发布于浙江
- 举报
必须要注意的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)