环形缓冲区
- 什么是环形缓冲区
环形缓冲区用于表示一个固定尺寸、头尾相连的缓冲区,通常用于缓存数据。环形缓冲区的主要特点是最大缓存数据量是固定的,当缓冲区满之后,会自动删除头部数据。
- 应用场景
总的来说,只要是固定长度的数据缓存,都可以使用环形缓冲区。个人用的较多的地方主要是视频缓存。
环形缓冲区代码示例
#include <mutex>;
#include <iostream>;
using namespace std;
template<typename T>
class RingBuffer
{
public:
RingBuffer(int iMaxBufferSize):
m_MaxBufSize(iMaxBufferSize),
m_Buffer(NULL),
m_CopyBuffer(NULL)
{
_ASSERTE(m_MaxBufSize > 0);
this->m_Buffer = new T[m_MaxBufSize];
_ASSERT(this->m_Buffer != NULL);
this->m_CopyBuffer = new T[m_MaxBufSize];
_ASSERT(this->m_CopyBuffer != NULL);
}
~RingBuffer()
{
this->m