0

POD 構造体のインスタンスの形式のデータがあります。「通常の」条件下では、一意の ID を介してアクセスする必要があります。現在はstd::map. ただし、何か問題が発生した場合は、POD 構造体の特定のメンバーによって提供される順序でデータをトラバースする必要があります。

エラーが発生した場合に備えて、マップのすべてのデータ セットを優先キューにコピーしたくありません。これは非常にコストがかかるようです。

で実行std::make_heapしてみましたが、のイテレータを減算できないstd::mapため、コンパイルすらできません。map

ソートキーは定期的に変更されるため、データをプライオリティキューに保持し、ポインターをマップに格納するだけでは、特にマップを介したアクセス (典型的なユースケース) が間接化によってコストが高くなるため、現実的ではないようです。 .

逆に、つまり、必要に応じてヒープ化できる別のデータ構造にポインターを格納することは可能ですが、同期はエラーを起こしやすい可能性があります。

私が望むものを達成するstdライブラリ、boostまたはtbbには何かありますか?

4

1 に答える 1