3.12 pool_alloc

2013-10-07 13:14:19 · 作者: · 浏览: 71

3.12  pool_alloc

pool_alloc提供了两个可以用于标准容器模板参数的内存分配器,分别是pool_alloc和fast_pool_allocator,它们的行为与之前的内存池类有一点不同--当内存分配失败时会抛出异常std::bad_alloc。它们位于名字空间boost,需要包含头文件<boost/pool/pool_ alloc.hpp>。

除非有特别的需求,我们应该总使用STL实现自带的内存分配器,使用pool_alloc需要经过仔细的测试,以保证它与容器可以共同工作。

下面的代码示范了pool_alloc的用法:

  1. #include <boost/pool/pool_alloc.hpp> 
  2. using namespace boost;  
  3. int main()  
  4. {  
  5.     vector<int, pool_allocator<int> > v;                    
    //使用
    pool_allocator代替标准容器默认的内存分配器  
  6.     v.push_back(10);            //vector将使用新的分配器良好工作  
  7.     cout << v.size();