在这里我们用模板参数和模板的模板参数完成适配器栈和队列。
之前写过栈和队列,以及 vector 与 list 的的内容。
在这里我们直接使用vector作为模板的模板参数完成适配器栈,
用list作为模板的模板参数完成适配器队列。
适配器栈:
template<class T,class Container = List<T>>
class Queue
{
public:
Queue()
{}
void Push(const T&t) {
_front.PushBack(t);
}
void Pop() {
_front.PopFront();
}
size_t Size()
{
return _front.Size();
}
bool Empty()
{
return _front.Empty();
}
T Top()
{
return _front.Top();
}
private:
Container _front;
};
适配器队列:
template<class T,class Container = List<T>>
class Queue
{
public:
Queue()
{}
void Push(const T&t) {
_front.PushBack(t);
}
void Pop() {
_front.PopFront();
}
size_t Size()
{
return _front.Size();
}
bool Empty()
{
return _front.Empty();
}
T Top()
{
return _front.Top();
}
private:
Container _front;
};