从点矢量中找出最近的点

Dam*_*mir 6 c++ stl

我有一个非常简单的Point类的指针向量:

class Point{
public:
    float x;
    float y;
    float z;
};
Run Code Online (Sandbox Code Playgroud)

如何使用STL找到与指示点最近的对象?
我是否需要先对矢量进行排序或是否有更有效的方法?

Luc*_*ore 7

排序需要O(n*log(N)),所以效率不高.你可以O(n)通过迭代元素并记住最佳匹配来实现.

使用for_eachfrom <algorithm>,您可以定义一个跟踪最近元素并完成的函数O(n).

或者,您甚至可以使用min_element,也可以使用<algorithm>.