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