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)