类模板实现栈

来源:互联网 发布:萤石云ddns设备域名 编辑:程序博客网 时间:2024/05/29 19:28
#ifndef _STACK_H_#define _STACK_H_template <typename T>class Stack{public:    Stack(int maxSize);    ~Stack();    void Push(const T& t);    void Pop();    T& Top() const;    bool Empty() const;private:    T *s_;    int top_;    int maxSize_;};template <typename T>Stack<T>::Stack(int maxSize) : maxSize_(maxSize), top_(-1){    s_ = new T[maxSize];}template <typename T>Stack<T>::~Stack(){    delete [] s_;}template <typename T>void Stack<T>::Push(const T& t){    if(top_ == maxSize_ - 1)    {        throw(1);    }    s_[++top_] = t;}template <typename T>void Stack<T>::Pop(){    if(top_ + 1 == 0)    {        throw(2);    }    top_--;}template <typename T>T& Stack<T>::Top() const{    if(top_ + 1 == 0)    {        throw(2);    }    return s_[top_];}template <typename T>bool Stack<T>::Empty() const{    return top_ + 1 == 0;}#endif
0 0
原创粉丝点击