История изменений
Исправление alysnix, (текущая версия) :
там у тебя точно циклический буфер? он же в литературе RingBuffer.
такой буфер должен иметь минимальный интерфейс прмерно такой
class RingBuffer
{
bool put(const Data&); ///положить в буфер
bool get(Data&); ///взять из буфера
int count(); ///сколько элементов данных в буфере
bool is_empty(); ///пуст, get возвратит false
bool is_full(); ///полон, put возвратит false
}
у тебя get вообще нет похоже и сама реализация странная.
реализация делается либо на двух индексах - текущее начала и конец буфера, или начало и размер, тогда int count() элементарен.
Исходная версия alysnix, :
там у тебя точно циклический буфер? он же в литературе RingBuffer.
такой буфер должен иметь минимальный интерфейс прмерно такой
class RingBuffer
{
bool put(const Data&); ///положить в буфер
bool get(Data&); ///взять из буфера
int count(); ///сколько элементов данных в буфере
bool is_empty(); ///пуст, get возвратит false
bool is_full(); ///полон, put возвратит true
}
у тебя get вообще нет похоже и сама реализация странная.
реализация делается либо на двух индексах - текущее начала и конец буфера, или начало и размер, тогда int count() элементарен.