K-d tree: Difference between revisions
Content added Content deleted
m (Reformatted to reduce line count) |
m (Minor edit to C++ code) |
||
Line 303: | Line 303: | ||
node* right_; |
node* right_; |
||
}; |
}; |
||
node* root_; |
node* root_ = nullptr; |
||
node* best_; |
node* best_ = nullptr; |
||
double best_dist_; |
double best_dist_ = 0; |
||
size_t visited_; |
size_t visited_ = 0; |
||
std::vector<node> nodes_; |
std::vector<node> nodes_; |
||
Line 358: | Line 358: | ||
template<typename iterator> |
template<typename iterator> |
||
kdtree(iterator begin, iterator end) { |
kdtree(iterator begin, iterator end) { |
||
best_ = nullptr; |
|||
best_dist_ = 0; |
|||
visited_ = 0; |
|||
nodes_.reserve(std::distance(begin, end)); |
nodes_.reserve(std::distance(begin, end)); |
||
for (auto i = begin; i != end; ++i) |
for (auto i = begin; i != end; ++i) |
||
Line 377: | Line 374: | ||
template<typename func> |
template<typename func> |
||
kdtree(func&& f, size_t n) { |
kdtree(func&& f, size_t n) { |
||
best_ = nullptr; |
|||
best_dist_ = 0; |
|||
visited_ = 0; |
|||
nodes_.reserve(n); |
nodes_.reserve(n); |
||
for (size_t i = 0; i < n; ++i) |
for (size_t i = 0; i < n; ++i) |