因此,我目前有一个向量的我的自定义结构。
向量中的每个元素都是一个图点(x,y)。给定向量中的索引,我需要能够得到给定的索引与所有其他点之间的欧几里德距离。我已经知道如何计算欧几里得距离,,我想知道的是,如何在向量中的任何元素不旋转的情况下对所有其他元素进行检查。
例如,在我的向量中,如果我有:
(3,5),(4,6),(7,8),(5,3)
作为一个例子,我得到了指数2 (7,8),我需要能够计算出(7,8)到其他3个点之间的距离,因为我感兴趣的是寻找最短路径。我想使用std::旋转函数并将(7,8)移动到前面,但我不想弄乱我的向量。,我是否可以完成在向量中给一个索引到一个元素,并将它与向量中的所有其他元素进行比较,而不改变向量,这样我就可以进行计算了吗?谢谢
发布于 2016-11-27 07:07:10
for(const auto& i : yourvector)
compare(i, yourvector[foo]);如果在向量中循环是可以的,那就应该这样做。
否则,您可以sort向量将最近的元素放在首位:http://www.cplusplus.com/reference/algorithm/sort/
https://stackoverflow.com/questions/40826560
复制相似问题