#include <iostream>
using namespace std;
#include <boost/circular_buffer.hpp>
#include <boost/assign.hpp>
using namespace boost;
using namespace boost::assign;
int main()
{
boost::circular_buffer<int> cb(5);
assert(cb.empty()); // 缓冲区目前没数据
assert(cb.size() == 0);
cb.push_back(1); // 添加了一个元素1
assert(cb.size() == 1);
cb.push_front(2);//21
assert(cb.size() == 2 && cb.front() == 2);
cb.insert(cb.begin() + 1, 3);//231
for (int it : cb)
cout << it;// 2 3 1
cout << endl;
cb.pop_front();// 31
cout << cb[0] << cb[1] <<endl;// 31
cb[2] = 10;// 无效
//cb.erase_begin(2);//空
boost::circular_buffer<int> cb1 = (list_of(1),2,3);// 初始化后大小固定为3
for (int it : cb1)
cout << it;//123
cout << endl;
cb1.push_back(4);// 234(1数据位置被赋值为4)
cb1.push_front(5);//523
cb1.resize(4);// 5230
cb1.push_back(6);//2306
//cb.push_back(5);
assert(cb <= cb1);
boost::circular_buffer<std::vector<int>> cbv(5);
std::vector<int> v;
v.push_back(1);
cbv.push_back(v);
cbv[0].push_back(123);
assert(cbv[0].size() == 2);
push_back(cbv[0])(1), 2, 2;
assert(cbv[0].size() == 5);
return 0;
}