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