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

时间:2011-11-21 22:54:57

标签: c++ boost memory-pool bimap

我正致力于提高使用Boost Graph Library和boost::bimap的程序的性能。分析显示大部分时间都花在内存分配和释放上。使图表库的adjacency_list类使用boost::fast_pool_allocator显着提高了性能。剩下的大部分内存分配发生在boost::bimap中,所以我也想尝试在那里使用自定义分配器。 documentation表示您可以将分配器指定为bimap的最后一个模板参数,但它没有说明分配器本身的模板参数应该是什么类型。例如,对于类型XY,在

boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >

Z应填写哪些内容?

1 个答案:

答案 0 :(得分:3)

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

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