本文整理汇总了C++中Ptr::CalculateSize方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::CalculateSize方法的具体用法?C++ Ptr::CalculateSize怎么用?C++ Ptr::CalculateSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ptr
的用法示例。
在下文中一共展示了Ptr::CalculateSize方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Invert
void Invert(int a, int b) {
int size = (b - a + 1) >> 1;
Ptr B = Get(a);
Ptr A = B->left_child;
B->left_child = nullptr;
B->CalculateSize();
Ptr C = Get(size << 1);
Ptr D = C->right_child;
C->right_child = nullptr;
C->CalculateSize();
B = Get(size);
Ptr E = B->right_child;
E->parent = nullptr;
B->right_child = D;
if (D) D->parent = B;
B->CalculateSize();
C->right_child = B;
B->parent = C;
C->CalculateSize();
C = Min(E);
C->left_child = A;
if (A) A->parent = C;
C->CalculateSize();
}
示例2: BuildFromSortedVector
Ptr BuildFromSortedVector(
const std::vector<int>& v,
int s, int e, Ptr parent) {
if(e - s <= 0) return nullptr;
int m = (s + e) >> 1;
Ptr u = new Node(v[m]); u->parent = parent;
u->left_child = BuildFromSortedVector(v, s, m, u);
u->right_child = BuildFromSortedVector(v, m + 1, e, u);
u->CalculateSize(); return u;
}