上の続き

インターフェイスだけ書くと、


template< typename T >
class GapBuffer {
public:
GapBuffer( int nBufSize ); // バッファサイズを指定して構築
T& get(); // カレントバッファを得る
void goForward(); // カレントバッファを進める
void goBack(); // カレントバッファを戻す
void goBegin(); // カレントバッファを最初に設定する
void goEnd(); // カレントバッファを最後に設定する
int getSize(); // バッファサイズを得る
int getGapSize(); // 隙間の数を得る
bool isGapZero(); // 隙間ゼロ?
void erase(); // カレントバッファを消す
};
という感じでできました。ただ、eraseの実装だけが微妙…。あとで効率アップでも検討してみよう。