简述
STL的容器种类已经足够了,但实现一下有助于对容器的理解。这里实现的是非常弱智的版本,包括初始化,拷贝,插入,清除。
代码
#include<iostream>
#include<cstring>
using namespace std;
template <typename T>
class Vector
{
public:
//无参构造的初始化
Vector():p(NULL),capacity(0),size(0)
{
//this->capacity = 20;
//this->size = 0;
//T *p = new T[capacity];
}
//有参构造的初始化方式
Vector(int size,T data)
{
this->capacity = 20+size;
this->size = size;
this->p = new T[capacity];
for(int i = 0;i< this->size;i++)
{
this->p[i] = data;
}
}
//析构函数,释放掉唯一的指针
~Vector()
{
if(p!=NULL)
{
delete[] p;
}
}
//拷贝构造函数
Vector(const Vector& v)
{
//令人发指,如果直接调用拷贝构造,虽然没给成员变量p赋值,但这个指针不是空的
//等号赋值那里可以加上判断是否为空