我只想在不使用 push_back() 方法的情况下增加 boost::circular_buffer 容器的指针。我看到了一个 increment() 方法,但它在私有部分。我需要直接写入循环缓冲区,因为它比我准备数据并使用 push_back() 插入缓冲区要快。
这就是我现在所拥有的。它很慢,因为每次我都涉及两个副本push_back()
:
struct big_data_block
{
char data[100000];
};
boost::circular_buffer<big_data_block> m_buffer(8);
void FillBuffer()
{
big_data_block block;
ReadFromAnywhere(&block);
buffer.push_back(block);
}
这就是我想要的,但类似IncrementBackPointer()
的功能不存在。
void FillBuffer()
{
ReadFromAnywhere(buffer.end() - 1);
buffer.IncrementBackPointer();
}