私のデータは値がend_rangestd :: mapに最も近い範囲の入力番号を見つけるのに最も効率的なstdアルゴリズムは何ですか?
例えばあるキーは、任意の数 のstart_range整数および整数 のマップに格納されますマイマップは、次のようになります。私の入力数が150である場合
std::map<int,int> mymap;
mymap[100]=200;
mymap[1000]=2000;
mymap[2000]=2500;
mymap[3000]=4000;
mymap[5000]=5100;
さて、このアルゴリズムは、[100]をMYMAPするイテレータを返す必要があります。 しかし、出力値(すなわちイテレータ→秒)の範囲チェックロジックは、それが正しい範囲内にあるかどうかを検証するために別々に実行されなければなりません。
入力番号4500の場合、mymap [5000]が返される可能性がありますが、範囲チェックロジックは5000から5100のように失敗します。 マップに範囲のオーバーラップがないことに注意してください。