私はmap<double, unique_ptr<Item>>
を持っています。この地図を検索して、計算値が検索値に最も近い項目を探したいと思います。計算された値は、長さ計算であるItem::compute
によって生成できます。これは、すべての要素に対して行うことを避けたいものです。このマップは、すでに計算機能の結果に従って順序付けられていると仮定できます。マップ要素のバイナリ検索を実行
私はバイナリ検索をすることができたと思っていましたが、問題はマップ内のn番目の要素にジャンプすることができないということです。マップでありベクトルではないからです。具体的には、マップ内の2つの任意の項目の中間の項目を取得する必要があります。それは可能ですか?マップ内でバイナリ検索を実行する効率的な方法がありますか?
データ構造が任意の要素へのランダムアクセスをサポートしていない場合は、バイナリ検索を実行できません。 – PRP