pool_alloc
pool_alloc提供了两个可以用于标准容器模板参数的内存分配器,分别是pool_alloc和fast_pool_allocator,它们的行为与之前的内存池类有一点不同——当内存分配失败时会抛出异常std::bad_alloc。它们位于名字空间boost,需要包含头文件<boost/pool/pool_alloc.hpp>。
除非有特别的需求,我们应该总使用标准库实现自带的内存分配器,使用pool_alloc需要经过仔细的测试,以保证它与容器可以共同工作。
代码示例
#include <boost/pool/pool_alloc.hpp>
using namespace boost;
void case5()
{
vector<int, pool_allocator<int> > v; //pool_allocator代替默认的内存分配器
v.push_back(10); //vector将使用新的分配器良好工作
cout << v.size();
}
int main()
{
case5();
}