所以我目前有一个自定义结构的矢量。
向量中的每个元素都是图形点(x,y)。给定我的向量中的索引,我需要能够给出索引与所有其他点之间的欧氏距离。我已经知道如何计算欧氏距离,我想知道的是如何在不旋转的情况下检查我的矢量中的任何元素与其他元素。
例如在我的载体中,如果我有:
(3,5),(4,6),(7,8),(5,3)
作为一个例子我给了索引2(7,8)我需要能够计算(7,8)和其他3个点之间的距离,因为我有兴趣找到最短的路径。我想过使用std :: rotate功能并将(7,8)移到前面,但我不想弄乱我的矢量。 有没有办法可以实现在向量中给出一个元素的索引并将其与向量中的所有其他元素进行比较而不更改向量,以便我可以进行计算?谢谢
答案 0 :(得分:2)
for(const auto& i : yourvector)
compare(i, yourvector[foo]);
如果循环遍历向量,那么应该这样做。
另外,您可以sort
向量将最接近的元素放在第一位:http://www.cplusplus.com/reference/algorithm/sort/