boost准模板库内存管理中pool和object_pool的使用

2014-11-23 22:38:46 · 作者: · 浏览: 0

首先,在写程序之前,必须修改一个问题,要不然,无法链接:

boost安装目录:D:\boost。
找到D:\boost\boost_1_55_0\include\boost-1_53\boost\system\error_code.hpp。
在error_code.hpp文件开头添加宏定义:#define BOOST_ERROR_CODE_HEADER_ONLY。

然后,下面就是我们的pool的示例:

#define BOOST_ALL_NO_LIB
#include
  
   
#include
   
     //object_pool继承pool,但是是保护继承,有些操作类似,单有些pool的接口无法使用 using namespace std; using namespace boost; class demo_class { public: int a,b,c; demo_class(int x=1,int y=2,int z=3):a(x),b(y),c(z){}; }; int main() { object_pool
    
      p1;//创建对象内存池 demo_class *p=p1.malloc();//分配一个原始内存块 cout<
     
      a!=1)<<" "<<(p->b!=2)<<" "<<(p->c!=3)<
      
       a==4 && pa->b==5 && pa->c==6)<
       
         pls;//定义一个分配string对象的内存池 for(int i=0;i<10;i++) { string *ps=pls.construct("Hello object_pool");//先调用分配内存,再 cout<<*ps<
        
         

接着是object_pool的示例:

 #define BOOST_ALL_NO_LIB
#include
          
           
#include
           
             //object_pool继承pool,但是是保护继承,有些操作类似,单有些pool的接口无法使用 using namespace std; using namespace boost; class demo_class { public: int a,b,c; demo_class(int x=1,int y=2,int z=3):a(x),b(y),c(z){}; }; int main() { object_pool
            
              p1;//创建对象内存池 demo_class *p=p1.malloc();//分配一个原始内存块 cout<
             
              a!=1)<<" "<<(p->b!=2)<<" "<<(p->c!=3)<
              
               a==4 && pa->b==5 && pa->c==6)<
               
                 pls;//定义一个分配string对象的内存池 for(int i=0;i<10;i++) { string *ps=pls.construct("Hello object_pool");//先调用分配内存,再 cout<<*ps<
                
                 
程序的记过很简单,就不在此处列出来了。