本文整理汇总了C++中RectangleTree::TreeDepth方法的典型用法代码示例。如果您正苦于以下问题:C++ RectangleTree::TreeDepth方法的具体用法?C++ RectangleTree::TreeDepth怎么用?C++ RectangleTree::TreeDepth使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RectangleTree
的用法示例。
在下文中一共展示了RectangleTree::TreeDepth方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DeletePoint
bool RectangleTree<MetricType, StatisticType, MatType, SplitType, DescentType>::
DeletePoint(const size_t point)
{
// It is possible that this will cause a reinsertion, so we need to handle the
// levels properly.
RectangleTree* root = this;
while (root->Parent() != NULL)
root = root->Parent();
std::vector<bool> lvls(root->TreeDepth());
for (size_t i = 0; i < lvls.size(); i++)
lvls[i] = true;
if (numChildren == 0)
{
for (size_t i = 0; i < count; i++)
{
if (points[i] == point)
{
localDataset->col(i) = localDataset->col(--count); // Decrement count.
points[i] = points[count];
// This function wil ensure that minFill is satisfied.
CondenseTree(dataset->col(point), lvls, true);
return true;
}
}
}
for (size_t i = 0; i < numChildren; i++)
if (children[i]->Bound().Contains(dataset->col(point)))
if (children[i]->DeletePoint(point, lvls))
return true;
return false;
}
示例2: DeletePoint
bool RectangleTree<MetricType, StatisticType, MatType, SplitType, DescentType,
AuxiliaryInformationType>::
DeletePoint(const size_t point)
{
// It is possible that this will cause a reinsertion, so we need to handle the
// levels properly.
RectangleTree* root = this;
while (root->Parent() != NULL)
root = root->Parent();
std::vector<bool> lvls(root->TreeDepth());
for (size_t i = 0; i < lvls.size(); i++)
lvls[i] = true;
if (numChildren == 0)
{
for (size_t i = 0; i < count; i++)
{
if (points[i] == point)
{
if (!auxiliaryInfo.HandlePointDeletion(this, i))
points[i] = points[--count];
RectangleTree* tree = this;
while (tree != NULL)
{
tree->numDescendants--;
tree = tree->Parent();
}
// This function wil ensure that minFill is satisfied.
CondenseTree(dataset->col(point), lvls, true);
return true;
}
}
}
for (size_t i = 0; i < numChildren; i++)
if (children[i]->Bound().Contains(dataset->col(point)))
if (children[i]->DeletePoint(point, lvls))
return true;
return false;
}