栈stack
与之前的vector等容器不同,stack是容器适配器
使用
实现
template<class T, class Container>
class stack
{
public:
void push(const T& x)
{
_con.push_back(x);
}
void pop()
{
_con.pop_back();
}
const T& top()
{
return _con.back();
}
bool empty()
{
return _con.empty();
}
size_t size()
{
return _con.size()
}
private:
Container _con;
};
队列queue
queue也是容器适配器
这里默认用的deque作为容器,也可以选择其他容器
设计模式
container为容器,如vector,list等,可以直接利用vector等容器的函数来实现栈或队列的函数
这是一种设计模式
目前学习了适配器模式和迭代器模式
迭代器
适配器
适配器模式的本质是一种封装转换
适配器通常都不提供迭代器
即使用其他的容器来实现该容器适配器