C++缓冲池
来源:互联网 发布:南风知我意1,2txt下载 编辑:程序博客网 时间:2024/06/15 05:37
写了一个最简单缓冲池,多线程不安全,仅供参考!!!
class CB{public:CB() : m_n(0){cout<<"CB::CB()\n";}~CB(){cout<<"CB::~CB()\n";}int m_n;};template < class T >class cpool{public:cpool() : m_pSingleList(NULL){cout<<"cpool::cpool()\n";}~cpool(){_NODE_ * ptmp = NULL;while(m_pSingleList){ptmp = m_pSingleList;m_pSingleList = m_pSingleList->pNext;delete ptmp->pData;delete ptmp;}cout<<"cpool::~cpool()\n";}shared_ptr<typename T> get(){if(m_pSingleList){_NODE_ * pNode = m_pSingleList;m_pSingleList = m_pSingleList->pNext;T * pT = pNode->pData;delete pNode;return shared_ptr< typename T >(pT, delete_t(this));}else{return shared_ptr< typename T >(new T, delete_t(this));}}void free_t(T * pT){m_pSingleList = new _NODE_(m_pSingleList, pT);}private:class delete_t{public:delete_t(cpool * ppool) : m_ppool(ppool){}void operator ()(T * pT){m_ppool->free_t(pT);}cpool * m_ppool;};private:struct _NODE_{_NODE_(_NODE_ * pNode = NULL, T * pT = NULL) : pNext(pNode), pData(pT){}_NODE_ * pNext;T * pData;};private:_NODE_ * m_pSingleList;};int main(int argc, char * argv[]){cpool< CB > * pcb_pool1 = new cpool< CB >();{shared_ptr< CB > pCB = pcb_pool1->get();pCB->m_n = 5;}cout<<"*********************************\n\n";cpool< CB > * pcb_pool2 = new cpool< CB >();{shared_ptr< CB > pCB = pcb_pool2->get();pCB->m_n = 10;shared_ptr< CB > pCB2 = pcb_pool2->get();}delete pcb_pool2;cout<<"*********************************\n";delete pcb_pool1;return 0;}
0 0
- c语言缓冲问题
- c 缓冲和文件
- C的全缓冲、行缓冲和无缓冲
- 缓冲池
- 缓冲池
- c/c++ 缓冲输入和非缓冲输入
- c语言的输入缓冲
- C 输入输出 读取 回显 缓冲
- c++builder 的双缓冲
- C语言中的缓冲机制
- java 字符串缓冲池 String缓冲池
- java 字符串缓冲池 String缓冲池
- java 字符串缓冲池 String缓冲池
- java 字符串缓冲池 String缓冲池
- java 字符串缓冲池 String缓冲池
- java字符串缓冲池 string缓冲池
- C标准I/O缓冲区:全缓冲和行缓冲
- 【C语言】缓冲文件系统和非缓冲文件系统
- 项目管理能力提升四要素
- ip限制
- 子数组最大和
- HDU 4912 - Paths on the tree (LCA 贪心)
- Makefile的依赖自动生成 tom tromey
- C++缓冲池
- Unsolved ---poj1979 不知哪里错了
- linux下mentohust安装和使用
- SQL SELECT DISTINCT 语句
- 如何应对“俄黑客窃取大量信息”问题?
- 语音群呼餐饮行业需求分析
- java笔记8-8-1
- cocos2D-x 3.x学习笔记【5】 缓动效果
- Disjoint set(并查集) data structure