5

我正在努力提高同时使用 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> >

应该填写什么Z

4

1 回答 1

3

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

  • 从文档中看不出来
  • Boost 代码不快速阅读
  • 谷歌搜索没有帮助
  • 和其他人可能有有用的评论(例如,我没有测试这是否取决于 bimap 的左视图或右视图是什么)
于 2011-11-21T22:59:18.097 回答