2016-11-27 9 views
0

現在、私は自分のカスタム構造体のベクトルを持っています。ベクトル内のアイテムをベクトル内のすべてのアイテムと比較する

私のベクトルの各要素はグラフポイント(x、y)です。私のベクトルのインデックスを与えられたとき、私は与えられたインデックスと他のすべてのポイントとの間のユークリッド距離を可能にする必要があります。私はすでにユークリッド距離を計算する方法を知っています。私が知りたいことは、回転しないで他のすべてに対して私のベクトルの要素をチェックする方法です。私のベクター、例えば

Iしている場合:

(3,5)、(4,6)、(7,8)、(5,3)

例として、及びIをインデックス2を与えられました(7,8)私は最短経路を見つけることに興味があるので、(7,8)と他の3点の間の距離を計算する必要があります。私はstd :: rotate関数を使用して前面に移動(7,8)することを考えましたが、私のベクトルを混乱させたくありません。 ベクトルに要素のインデックスを与え、ベクトルを変更せずにベクトルの他のすべての要素と比較することで、計算を行うことができる方法はありますか?あなたはそのベクトルをループすることはOKであれば、それを行うべき

+2

はあなたが比較されている1つの要素を無視して、前後からのベクターによる単純なループを試したことがありますか? –

+0

ああ、私はそれを試していない!それはとても意味をなさない!ありがとうございました、それは私が探していたものでした – MMM

+0

私はその男であることは嫌いですが、それが解決策だった場合、以下の回答に合格したことを忘れないでください。 – FluorescentGreen5

答えて

2
for(const auto& i : yourvector) 
    compare(i, yourvector[foo]); 

をありがとうございます。エルス

最初に最も近い要素を入れてベクトルをsortことができます。http://www.cplusplus.com/reference/algorithm/sort/

+1

['std :: find_if'も参考になるかもしれません。](http://en.cppreference.com/w/cpp/algorithm/find) – user4581301

関連する問題