5

BoostGraphLibraryとの両方を使用するプログラムのパフォーマンスの向上に取り組んでいますboost::bimap。プロファイリングにより、ほとんどの時間がメモリの割り当てと割り当て解除に費やされていることが明らかになりました。adjacency_listグラフライブラリのクラスを使用するようにすると、boost::fast_pool_allocatorパフォーマンスが大幅に向上します。残りのメモリ割り当ての大部分はで発生するboost::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>。これは私の場合はうまくいきましたが、ここに投稿したかったのは

  • ドキュメントからは明らかではありません
  • ブーストコードはすぐには読めません
  • グーグルは役に立たなかった
  • そして他の人々は有用なコメントを持っているかもしれません(例えば、これがバイマップの左または右のビューが何であるかに依存するかどうかはテストしていません)
于 2011-11-21T22:59:18.097 に答える