boost :: circular_buffer增量开始指针而不使用push_back()

时间:2011-09-01 06:59:31

标签: c++ boost circular-buffer

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

0 个答案:

没有答案