我正致力于提高使用Boost Graph Library和boost::bimap
的程序的性能。分析显示大部分时间都花在内存分配和释放上。使图表库的adjacency_list
类使用boost::fast_pool_allocator
显着提高了性能。剩下的大部分内存分配发生在boost::bimap
中,所以我也想尝试在那里使用自定义分配器。 documentation表示您可以将分配器指定为bimap的最后一个模板参数,但它没有说明分配器本身的模板参数应该是什么类型。例如,对于类型X
和Y
,在
boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >
Z
应填写哪些内容?
答案 0 :(得分:3)
我相信答案是,对于Z
,您应该填写std::pair<X,Y>
。这在我的情况下有效,但我想在这里发帖,因为