/* 基于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(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 查看本文章