这是个自定义动态容器吗
template < typename T, int N >
class WrapHistory
{
protected:
void increase(int& idx) { ++idx; if(idx==N) idx=0; }
void decrease(int& idx) { --idx; if(idx<0 ) idx=(N-1); }
public:
WrapHistory() : readpos(0), writepos(0) {}
void add(const T& entry)
{
increase(writepos);
entries[writepos]=entry;
reset();
}
void reset(){ readpos = writepos; }
T& read (){ return entries[readpos]; }
void prev (){ decrease(readpos); if(readpos==writepos) increase(readpos); }
void next (){ if(readpos!=writepos) increase(readpos); }
int getnum()
{
return writepos;
}
protected:
int readpos;
int writepos;
T entries[N];
};
WrapHistory<string,80> lines;
如果是,我想写个清空这个容器的函数该怎么写呢,就像vector的erase那样的!