學習了模板,咱們發現,c++中的衆多數據結構,如棧與隊列跟模板,只是方法上與線性表不一樣,其真正意義上的結構,也就是線性表,代碼以下:
c++
template <typename T> class SeqList { private : int _size ; int _capacity ; T* _data ; }; // template <class T, template<class> class Container> template <class T, template <class> class Container = SeqList > // 缺省參數 class Stack { public : void Push (const T& x )//入棧 { PushBack(); } void Pop ()//出棧 { PopBack(); } const T & Top();//得到棧頂數據 bool Empty ();//判斷是否爲空棧 private : Container<T > _con; }; void Test () { Stack<int > s1; Stack<int , SeqList> s2; }
其意義也就是利用模板的模板參數,對線性表進行二次封裝。
數據結構
若有不足之處但願指正
ide