環形緩衝區的模板類實現

2021-08-20 01:24:30 字數 1703 閱讀 8144

#include ;

#include ;

using

namespace

std;

//類名:環形緩衝區類

//功能:實現任意類的環形緩衝區儲存

template

class ringbuffer

//函式功能:環形緩衝區析構函式

//引數: 無

//返回值: 無

~ringbuffer()

else

if (1==m_maxbufsize)

m_buffer = null;

m_copybuffer = null;

}this->m_mtelement.unlock();

}//函式功能:環形緩衝區析構函式

//引數: const t element[in] -- 要插入的元素

//返回值: 無

else

this->m_mtelement.unlock();

return bret;

}//函式功能:環形緩衝區列印

//引數: const t element[in] -- 要插入的元素

//返回值: 無

bool print()

cout

<< endl;

this->m_mtelement.unlock();

return bret;

}//函式功能:檢查序列中是否包容某個元素

//引數: const t element[in] -- 要檢查的元素

//返回值: bool -- 包含指定元素,則返回true;否則返回false

bool contains(const t element)

}this->m_mtelement.unlock();

return bret;

}//函式功能:獲取指定序列中的值

//引數: const t element[in] -- 要檢查的元素

//返回值: bool -- 包含指定元素,則返回true;否則返回false

t& operator(int index)

private:

int m_maxbufsize; //環形緩衝區容最大長度

int m_curelementnum; //當前元素數量

t* m_buffer; //環形緩衝區

t* m_copybuffer; //複製緩衝區,為了加快速度

mutex m_mtelement; //互斥鎖

};int main()

for (int i = 0; i < 10; i++)

ptempringbuffer->print();

delete ptempringbuffer;

}getchar();

return

0;}

環形緩衝區的實現

乙個簡單的環形緩衝區,沒有寫加解鎖的部分,用於多執行緒的話還是自己加吧.pragma once include stdio.h include stdlib.h include memory.h namespace linker ring bool put elementtype e else bo...

環形緩衝區

include include include include include define buffsize 1024 1024 define min x,y x y x y pthread mutex t lock pthread mutex initializer struct cycle b...

環形緩衝區

define print buf size 16 1024 static char g pcnetprintbuf 環形緩衝區的首位址 static int g ireadpos 0 環形緩衝區讀的位置 static int g iwritepos 0 環形緩衝區寫的位置 intinit 判斷環形緩...