Vector模板类----构造与析构

/* 基于C++平台*/

typedef int rank; //用int来定义 “秩” 这种概念

#define DEFAULT_CAPACIITY 3 //默认初始容量,实际应用中可以取更大的值

template <typename T> class Vector{ //我们定义了一个Vector这样的模板类

  private:Rank _size;//私有的封装和隐藏的变量

  int _capacity.//容量

  T* _elem;//存放元素的空间

  protected:

  /*  ...内部函数*/

  public:

  /*...构造函数*/

  /*...析构函数*/

  /*...只读接口*/

  /*...可写接口*/

  /*...遍历接口*/

}
  • 整个Vector结构是被封装起来

 

向量的默认构造:

Vector(int c=DEFAULT_CAPACITY){//如果没有指定会按照默认的容量制定一个数值

  _elem = new T[_capacity = c] //申请一个长度为c,基本类型就是模板参数T的一段连续的数据空间,把这个空间的首地址交给内部的_elem记下来

  _size = 0;

}
Vector(T const * A,Rank lo,Rank hi){//const * A为一个数组,数组区间复制

  copyFrom(A,lo,hi);//调用一个叫做copyFrom()的内部接口实现

}

Vector(Vector<T> const& V,rank lo,rank,hi){

  copyFrom(V._elem,lo,hi);//向量区间复制

}

Vector(Vector<T> const& V){

  copyFrom(V._elem,0,V._size);//向量整体复制

}

Vector(Vector<T> const& V){

  copyFrom(V._elem,0,V._size);

}

~Vector(){

  delete [] elem; //释放内部空间

}
扫描二维码关注公众号,回复: 4176261 查看本文章

猜你喜欢

转载自www.cnblogs.com/Boriaoy/p/9997755.html
今日推荐