Да, circular_buffer
является контейнером последовательности, поэтому при использовании push_back
новый элемент всегда будет доступен по наибольшему индексу, и порядок ранее вставленных элементов не изменится. Если буфер заполнен, то первый элемент будет удален, а индекс всех существующих элементов уменьшен на 1.
Пример ( онлайн-компилятор )
#include <boost/circular_buffer.hpp>
#include <iostream>
int main()
{
::boost::circular_buffer<int> x;
x.set_capacity(2);
x.push_back(0);
x.push_back(1);
std::cout << x[0]; // 0
std::cout << x[1]; // 1
x.push_back(2);
std::cout << x[0]; // 1
std::cout << x[1]; // 2
return 0;
}