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

标签 c++ boost memory-pool bimap

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

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

Z应该填什么?

最佳答案

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

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

关于c++ - 使用带有 boost::bimap 的自定义分配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8219703/

相关文章:

c++ - 我应该使用单例设计模式还是其他方式实现线程安全队列?

c++ - CGAL:沿相交折线的闵可夫斯基和

c++ - Boost MultiIndex Container 如何使用不同的组合键进行搜索?

c++ - WINAPI 代码中的链接器错误

c++ - 如何正确链接 boost 正则表达式?

c++ - 用于检索集合中第 k 个最小/最大项目的数据结构(STL 或 Boost)?

c++ - 检查失败后,Boost Unit Test将所有控制台文本永久变为红色

c++ - 如何在cuda上创建全局可访问的变量?

c++ - 内存池算法