#if 1 #ifndef _ARRAY_STACK_H_ #define _ARRAY_STACK_H #include "arraylist.h" template <typename T, typename _Container = arraylist<T>> class arraystack{ protected: _Container c; using uint_32 = unsigned int; public: explicit arraystack(const _Container &c) :c(c){ } arraystack() :c(){ } bool empty() const{ return c.empty(); } const _Container &getContainer() const{ return c; } uint_32 size() const{ return c.size(); } void push(const T &value){ c.push_back(value); } void pop(){ if(!empty())c.pop_back(); } const T &top() const{ return c.back(); } T &top(){ return c.back(); } uint_32 capacity() const{ return c.capacity(); } void clear(){ c.clear(); } }; #endif // !_ARRAY_STACK_H_ #endif