1、stack的介绍和使用
stack具有后进先出的特性,,stack是被作为容器适配器实现的,容器适配器是利用现有的容器类型作为基础,来创建新的容器类型,容器适配器通常与普通容器提供相同的接口,但可能添加了一些特定的功能和限制;
标准容器vector list deque都可以作为底层容器来构建stack,默认情况下,使用deque作为底层容器;
satck的模拟实现
//容器适配器模式
template<class T,class Container=vector<T>>
class stack
{
public:
void push(const T& x)
{
_con.push_back(x);
}
void pop()
{
_con.pop_back();
}
size_t size()
{
return _con.size();
}
bool empty()
{
return _con.empty();
}
const T& top()
{
return _con.back();
}
private:
Container _con;
};
2、queue的使用和介绍
队列是一种容器适配器,具有先进先出的特点,标准容器deque和list可以作为底层容器构建queue,为什么不用vector呢? 因为vectoe进行头删时比较麻烦