私はある参照点までの距離を線に沿って格納するベクトルを持っています。だから、私は、例えば、距離が700メートルかその距離に最も近い値の指標を求めています。下限を持つ最近傍点を見つける...しかし、データはソートされていません
私はベクトルをソートして、lower_boundを成功と一緒に使用しました。
実際にはエラーが発生するため、並べ替えられたベクトルを常に保つことはできません。データを格納するときに、たとえばその行に従わなかった可能性があるからです。
データがソートされていない場合、どうすれば最も近い値を見つけることができますか?
ソートされたベクトルは、ほとんど常にセットより優れています。 –
したがって、ペア(ベクトルインデックス、距離)でセットを作成し、lower_boundを適用して目的のインデックスを復元しますか?それは、すべてのベクトル要素をループに反復するだけではなく、もっと複雑ではないでしょうか? –
@RomanRdgz: 'std :: set'はペアを取らず、キーとして機能する要素を取ります。あなたはそれを' std :: map'と誤解します。また、ソートされた 'std :: vector'は、ほとんどの場合、すべての要素を 'std :: set'にコピーするよりも速くなるはずですが、明らかに後者ではなく後者を使うべきです。 –