【技巧】經過適配器模式完成棧的數據結構

    學習了模板,咱們發現,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

相關文章
相關標籤/搜索