Vector模板類----構造與析構
阿新 • • 發佈:2018-11-21
/* 基於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; //釋放內部空間 }