本文整理汇总了C++中SplayTree::checkCoherency方法的典型用法代码示例。如果您正苦于以下问题:C++ SplayTree::checkCoherency方法的具体用法?C++ SplayTree::checkCoherency怎么用?C++ SplayTree::checkCoherency使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SplayTree
的用法示例。
在下文中一共展示了SplayTree::checkCoherency方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SplayInt
int
main()
{
SplayTree<SplayInt, SplayInt> tree;
MOZ_RELEASE_ASSERT(tree.empty());
MOZ_RELEASE_ASSERT(!tree.find(SplayInt(0)));
static const int N = mozilla::ArrayLength(gValues);
// Insert the values, and check each one is findable just after insertion.
for (int i = 0; i < N; i++) {
tree.insert(new SplayInt(gValues[i]));
MOZ_RELEASE_ASSERT(tree.find(SplayInt(gValues[i])));
tree.checkCoherency();
}
// Check they're all findable after all insertions.
for (int i = 0; i < N; i++) {
MOZ_RELEASE_ASSERT(tree.find(SplayInt(gValues[i])));
tree.checkCoherency();
}
// Check that non-inserted values cannot be found.
MOZ_RELEASE_ASSERT(!tree.find(SplayInt(-1)));
MOZ_RELEASE_ASSERT(!tree.find(SplayInt(N)));
MOZ_RELEASE_ASSERT(!tree.find(SplayInt(0x7fffffff)));
// Remove the values, and check each one is not findable just after removal.
for (int i = 0; i < N; i++) {
SplayInt* removed = tree.remove(SplayInt(gValues[i]));
MOZ_RELEASE_ASSERT(removed->mValue == gValues[i]);
MOZ_RELEASE_ASSERT(!tree.find(*removed));
delete removed;
tree.checkCoherency();
}
MOZ_RELEASE_ASSERT(tree.empty());
// Reinsert the values, in reverse order to last time.
for (int i = 0; i < N; i++) {
tree.insert(new SplayInt(gValues[N - i - 1]));
tree.checkCoherency();
}
// Remove the minimum value repeatedly.
for (int i = 0; i < N; i++) {
SplayInt* removed = tree.removeMin();
MOZ_RELEASE_ASSERT(removed->mValue == i);
delete removed;
tree.checkCoherency();
}
MOZ_RELEASE_ASSERT(tree.empty());
return 0;
}