## CGAL::K_neighbor_search<Traits, GeneralDistance, Splitter, SpatialTree>

### Definition

The class K_neighbor_search<Traits, GeneralDistance, Splitter, SpatialTree> implements approximate k-nearest and k-furthest neighbor searching using standard search on a tree using a general distance class. The tree may be built with extended or unextended nodes.

#include <CGAL/K_neighbor_search.h>

### Parameters

Expects for the first template argument an implementation of the concept SearchTraits, for example CGAL::Cartesian_d<double>.

Expects for the second template argument a model of the concept GeneralDistance. The default type is CGAL::Euclidean_distance<Traits>.

Expects for fourth template argument an implementation of the concept SpatialTree. The default type is CGAL::Kd_tree<Traits, Splitter, CGAL::Tag_false>. The template argument CGAL::Tag_false makes that the tree is built with unextended nodes.

### Types

Traits::Point_d | Point_d; | Point type.
Traits::FT | FT; | Number type.
std::pair<Point_d,FT>
| Point_with_transformed_distance;
|  | Pair of point and transformed distance.

K_neighbor_search<Traits, GeneralDistance, Splitter, SpatialTree>::iterator
| Bidirectional iterator with value type Point_with_distance for enumerating approximate neighbors.

GeneralDistance::Query_item
| Query_item; | Query item type.
SpatialTree | Tree; | The tree type.

### Creation

K_neighbor_search<Traits, GeneralDistance, Splitter, SpatialTree> s (
| Tree& tree, Query_item q, int k=1, FT eps=FT(0.0), bool search_nearest=true, GeneralDistance d=GeneralDistance());

| Constructor for searching approximately k neighbors of the query item q in the points stored in tree using distance class d and approximation factor eps.

### Operations

iterator | s.begin () | Returns an iterator to the approximate neighbors.
iterator | s.end () | Past-the-end iterator.

| advanced |

std::ostream& | s.statistics ( std::ostream& s)
|  | Inserts statistics of the search process into the output stream s.

| advanced |

### See Also

CGAL::Orthogonal_k_neighbor_search<Traits, OrthogonalDistance, Splitter, SpatialTree>.