bosthhe1 / cpushpush

0 stars 0 forks source link

适配器初识 #18

Open bosthhe1 opened 1 year ago

bosthhe1 commented 1 year ago

适配器更像是一种对类型的封装,对于很多次使用的接口的类型进行复用,比如在设计栈的时候,就可以复用vector,我们在实现栈的增删查改的时候,就可以调用vector对应的函数,进行增删查改。(注意,反向迭代器就是使用的适配器,去封装的正向迭代器)

bosthhe1 commented 1 year ago
    template<class T, class Container = deque<T>>//函数模板的默认参数
    class stack
    {
    public:
        stack()
        {}
        void push(const T& val)
        {
            _con.push(val);
        }
        T pop()
        {
            T tmp = _con.top();
            _con.pop();
            return tmp;
        }
        size_t size()
        {
            return _con.size();
        }
        bool empty()
        {
            return _con.empty();
        }
        T& top()
        {
            return _con.top();
        }
    private:
        Container _con;
    };