本文整理汇总了C++中Page::RemoveChildren方法的典型用法代码示例。如果您正苦于以下问题:C++ Page::RemoveChildren方法的具体用法?C++ Page::RemoveChildren怎么用?C++ Page::RemoveChildren使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Page
的用法示例。
在下文中一共展示了Page::RemoveChildren方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Balance
bool Page::Balance(int* val, Page* rw)
{
if (this->keys.size() == 2*_t+1)
{
*val = this->keys.at(_t);
this->keys.erase(keys.begin()+_t);
rw->RemoveChildren(0);
// after all size is 2*t
for (uint i = 0; i < _t ; i++)
{
rw->AddChildren(this->child.at(_t+1));
this->child.erase(child.begin()+_t + 1);
rw->addToKeys(this->keys.at(_t));
this->keys.erase(keys.begin() + _t);
}
rw->AddChildren(this->child.at(_t+1));
this->child.erase(child.begin()+_t + 1);
return true;
}
else
{
for (uint i = 0; i < this->child.size(); i++)
if (child.at(i) != NULL)
{
int v=-1;
Page* r = new Page(_t);
r->RemoveChildren(0);
bool isNotBalanced = this->child.at(i)->Balance(&v, r);
if (r->GetSize()>0)
{
this->child.insert(child.begin() + i+1, r);
this->keys.insert(keys.begin() + i, v);
}
if (isNotBalanced)
return true;
}
}
return false;
}