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的用法:
- #include <boost/pool/pool_alloc.hpp>
- using namespace boost;
- int main()
- {
- vector<int, pool_allocator<int> > v;
//使用
pool_allocator代替标准容器默认的内存分配器 - v.push_back(10); //vector将使用新的分配器良好工作
- cout << v.size();
- }