我有一个非常简单的Point类的指针向量:
class Point{
public:
float x;
float y;
float z;
};
Run Code Online (Sandbox Code Playgroud)
如何使用STL找到与指示点最近的对象?
我是否需要先对矢量进行排序或是否有更有效的方法?
排序需要O(n*log(N)),所以效率不高.你可以O(n)通过迭代元素并记住最佳匹配来实现.
使用for_eachfrom <algorithm>,您可以定义一个跟踪最近元素并完成的函数O(n).
或者,您甚至可以使用min_element,也可以使用<algorithm>.