1

我只想在不使用 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();
}
4

0 回答 0