本文整理汇总了C++中TreeNode::count方法的典型用法代码示例。如果您正苦于以下问题:C++ TreeNode::count方法的具体用法?C++ TreeNode::count怎么用?C++ TreeNode::count使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TreeNode
的用法示例。
在下文中一共展示了TreeNode::count方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: near
/**
* Return the bounds of a range that includes all the elements that are near specified (x, y).
*
* @param x X-axis coordinate of val.
* @param y Y-axis coordinate of val.
* @return Pair of iterators that point to the first and the last of the elements that are
* near the (x, y) point. If any of given x or y is outside of a QuadTree range (i.e.
* x >= startX + width or y >= startY + width), pair of end() is returned.
*/
std::pair<iterator, iterator> near(double x, double y)
{
if (coordinatesAreOk(x, y))
{
TreeNode* node = getExistingNode(
LocationCode<maxLevels>(tr.forward(Coordinates(x, y))));
return std::pair<iterator, iterator>(
iterator(node, 0), ++iterator(node, node->count()));
}
return std::pair<iterator, iterator>(end(), end());
}
示例2: insert
iterator insert(StoredObject&& toStore)
{
TreeNode* node = getNode(toStore.location);
if (node->level() > 0)
{
// We store one element at time so there will be a moment before node overflow when its
// count will be equal capacity. Then we'll relocate all its elements to the new child
// nodes. At worst scenario, all elements will be relocated to the same node, so its
// count() will be again equal to capacity. The loop ends when at least one element is
// relocated to the another child node.
while (node->count() == nodeCapacity && node->level() > 0)
{
typename TreeNode::iterator it;
typename TreeNode::iterator itEnd = node->end();
for (it = node->begin(); it != itEnd; ++it)
{
node->child(it->location).insert(std::move(*it));
}
node->clear();
node = &(node->child(toStore.location));
}
}
return iterator(node, node->insert(std::move(toStore)));
}