Skip to content

makuzmenko/cyclic-buffer

Repository files navigation

cyclic-buffer

Шаблон кольцевого буфера для любого типа данных с циклическим итератором. Приватно наследуется от std::deque чтобы избежать неопределенного поведения при использовании неперегруженых функций

template <class _T, class _Alloc = std::allocator<_T>>
class cyclic_buffer : private std::deque<_T, _Alloc>

T Тип хранимых данных
_Alloc Аллокатор памяти. По умолчанию std::allocator

Пример использования:

cyclic_buffer<int> b = { 1,2,3,4,5 };
auto cyter = b.cybegin();
  
int i = 0; // не забудьте счетчик, иначе проход по буферу будет бесконечный

while (i < 15)
{
  (*cyter)++; //инкрементируем значения в контейнере.
  cout << *(cyter++) << " "; //выводим в консоль
  i++;
}
cout << endl; // результат: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7

Releases

No releases published

Packages

No packages published