circular_buffer
是一个序列容器所以当你使用
push_back
新元素将始终在最高索引处可访问,并且先前插入的元素的顺序不会更改。如果缓冲区已满,则第一个元素将被删除,所有现有元素的索引将减少1。
示例(
online compiler
#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;
}