码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-17 23:39:54      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:vector   构造   析构   copy   

构造函数:

// 构造函数
   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; } //释放内部空间

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

标签:vector   构造   析构   copy   

原文地址:http://blog.csdn.net/ganxiang2011/article/details/45798991

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!