Vector::构造,复制构造,析构

38 篇文章 1 订阅
22 篇文章 0 订阅

构造函数:

// 构造函数
   Vector(int c = DEFAULT_CAPACITY, int s = 0, T v = 0) //容量为c、规模为s、所有元素初始为v
   { _elem = new T[_capacity = c]; for (_size = 0; _size < s; _elem[_size++] = v); } //s <= c

复制构造函数:

从A数组中为[lo,hi)的左闭右开区间复制数据到vector对象:

template <typename T> //元素类型
void Vector<T>::copyFrom(T const* A, Rank lo, Rank hi) { //以数组区间A[lo, hi)为蓝本复制向量
   _elem = new T[_capacity = 2 * (hi - lo)]; _size = 0; //分配空间,规模清零
   while (lo < hi) //A[lo, hi)内的元素逐一
      _elem[_size++] = A[lo++]; //复制至_elem[0, hi - lo)
}

复制构造函数的几种重载方式:

复制数组A中某一段区间数据到对象

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

复制数组A中从0到n的区间数据到对象

   Vector(T const * A, Rank n) { copyFrom(A, 0, n); } //数组整体复制

复制vector中区间为[lo,hi)的数据到Vector对象

   Vector(Vector<T> const & V, Rank lo, Rank hi) { copyFrom(V._elem, lo, hi); } //向量区间复制

赋值vector中从0开始的整片数据

   Vector(Vector<T> const & V) { copyFrom(V._elem, 0, V._size); } //向量整体复制

析构函数

// 析构函数
   ~Vector() { delete [] _elem; } //释放内部空间
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值