Я использую модуль K_neighbor_search CGAL для решения проблемы поиска ближайшего соседа. Это приятно и легко использовать. Код примера показывает, что с учетом точки запроса он может найти ближайшую соседнюю точку из набора точек, а также расстояния. Тем не менее, я могу получить только точку ближайшего соседа. Я не знаю, как получить индекс точки, найденный алгоритмом. Например, я использую следующий код,Как я могу получить индекс ближайшей точки, когда я использую CGAL :: K_neighbor_search для поиска ближайшего соседей?
std::list<Point_d> points;
Tree tree(points.begin(), points.end());
Neighbor_search search(tree, query, N);
for(Neighbor_search::iterator it = search.begin(); it != search.end(); ++it)
{
std::cout << "Point: " << it->first << "\n";
std::cout << "Distance: " << std::sqrt(it->second) << "\n";
}
результат выглядит следующим образом:
точки: 222 129 161
Расстояние: 189.307
Но как Я получаю индекс точки результата? Что касается причины этого вопроса, я хочу получить нормальную точку ближайшего соседа, поэтому мне нужно обратиться к этой точке. Может ли кто-нибудь мне помочь?