目录
适配器
适配器就是接口,对容器、迭代器、算法进行包装,但其实质还是容器、迭代器和算法,只是不依赖于具体的标准容器、迭代器和算法类型。概念源于设计模式中的适配器模式:将一个类的接口转化为另一个类的接口,使原本不兼容而不能合作的类,可以一起运作。
容器适配器可以理解为容器的模板,迭代器适配器可理解为迭代器的模板,算法适配器可理解为算法的模板。
stack:template<class T, class Container = std::deque<T>> class stack;
queue:template<class T, class Container = std::deque<T>> class queue;
stack模拟实现
queue模拟实现
代码
queue.h
#pragma once
template<class T, class Container = deque<T>>
class queue
{
public:
queue()
{ }
void push(const T& x)
{
_con.push_back(x);
}
void pop()
{
_con.pop_front();
}
T& front()
{
return _con.front();
}
T& front() const
{
return _con.front();
}
T& back()
{
return _con.back();
}
T& back() const
{
return _con.back();
}
size_t size()
{
return _con.size();
}
bool empty()
{
return _con.empty();
}
private:
Container _con;
};
stack.h
#pragma once
template<class T, class Container = deque<T>>
class stack
{
public:
stack()
{ }
void push(const T& x)
{
_con.push_back(x);
}
void pop()
{
_con.pop_back();
}
T& top()
{
return _con.back();
}
const T& top()const
{
return _con.back();
}
size_t size()const
{
return _con.size();
}
bool empty()const
{
return _con.empty();
}
private:
Container _con;
};