|
template <typename T, class Container> class Stack { protected: Container c_; public: typedef T ValueType; // assumption: T and Container::ValueType are the same type void Push (const ValueType& t) { c_.PushBack(t); } void Pop () { c_.PopBack(); } // Precondition: !Empty() ValueType& Top () { return c_.Back(); } // Precondition: !Empty() bool Empty () const { return c_.Empty(); } unsigned int Size () const { return c_.Size(); } void Clear () { c_.Clear(); } } ; |
|