// 어답터 디자인패턴 기존의 있던 것을 이름만 바꿔서 새롭게 구성.
// Container 어답터
// list가있다. 그런데stack이필요하다.
template<typename T, typename Cont = deque<T> > class stack
{
        Cont st;
public:
        void push( T a ) { st.push_back(a); }
        void pop()       { st.pop_back(); }
        T&   top()       { return st.back(); }
};
#include <stack>
void main()
{
        stack<int, list<int> > st;
        stack<int> s;
}