1. 程式人生 > >Vector模板類----構造與析構

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; //釋放內部空間 }