使用带有boost :: bimap的自定义分配器

Rya*_*ard 5 c++ boost bimap memory-pool

我正在努力提高程序的性能,该程序同时使用Boost Graph Library和boost::bimap.分析显示大部分时间都花在内存分配和释放上.使adjacency_list图库的类boost::fast_pool_allocator显着使用改进的性能.剩下的大部分内存分配都会出现boost::bimap,所以我想尝试在那里使用自定义分配器.该文件说,你可以指定分配为bimap中的最后一个模板参数,但它并没有说什么类型的模板参数分配器本身应该是.例如,对于类型XY,在

boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >
Run Code Online (Sandbox Code Playgroud)

应该填写什么Z

Rya*_*ard 3

我相信答案是Z,你应该填写std::pair<X,Y>。这对我的情况有效,但我想在这里发帖,因为

  • 从文档中看不出来
  • Boost 代码阅读速度不快
  • 谷歌搜索没有帮助
  • 其他人可能有有用的评论(例如,我还没有测试这是否取决于 bimap 的左视图或右视图)