2016-11-27 13 views
0

因此,我目前有一個我自定義結構的向量。將對一個矢量中的項目對一個向量中的所有項目

我的向量中的每個元素都是一個圖點(x,y)。給定一個在我的向量中的索引,我需要能夠得到所給出的索引和所有其他點之間的歐氏距離。我已經知道如何計算歐幾里德距離,我想知道的是我如何檢查我的向量中的任何元素與其他所有其他元素不旋轉。

例如在我的矢量,如果我有:

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

作爲一個例子,我被給予指數2(7,8)我需要能夠計算(7,8)和其他3點之間的距離,因爲我有興趣找到最短路徑。我想過使用std :: rotate函數並將(7,8)移到前面,但我不想混淆我的向量。 有沒有一種方法可以實現在我的向量中給出一個元素的索引,並將它與向量中的所有其他元素進行比較,而無需更改向量,以便我可以執行計算?謝謝

+2

您是否嘗試過通過由前向後的矢量一個簡單的循環,你是比較的一個因素忽略? –

+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

相關問題