template <class Type>
class queue_s
{
public:
size_t size()
{
return max_size;
}
Type * elements;
virtual void push(const Type &_e)
{
for (int i = 0; i != max_size - 1; ++i)
{
elements[i] = elements[i + 1];
}
elements[max_size - 1] = _e;
}
queue_s(int _max_size)
{
elements = new Type[_max_size];
max_size = _max_size;
}
queue_s()
{
}
~queue_s()
{
SAFE_DELETE_ARRAY(elements);
}
int max_size;
};
/*模板特化*/
template <>
class queue_s<cv::Mat> /*:public queue_s<cv::Mat>*/
{
public:
void push(const cv::Mat &_e)
{
for (int i = 0; i != max_size - 1; ++i)
{
elements[i].data = elements[i + 1].data;
elements[i] = elements[i + 1];
}
elements[max_size - 1].data = _e.data;
elements[max_size - 1] = _e;
}
};