c ++标准库中是否有红黑树或avl树实现?

时间:2017-03-04 15:24:21

标签: c++ algorithm stl avl-tree red-black-tree

就像multiset是STL中的二进制搜索树实现一样,是否有可用的RB树或AVL树实现?

1 个答案:

答案 0 :(得分:1)

通常,您不会将multiset实现为二叉树。使用一个会破坏标准的性能保证,因为树可能会看起来像一个没有O(logN)插入和删除的链表。

通常std::set / std::multiset / std::map / std::multimap被实现为RB树,因为它具有这些性能保证。但这不是必需的。该标准仅保证容器在不同操作中的性能,并且由实现如何实现。

如果您想保证使用RB树,您需要检查您的实施,自己动手,或者获得第三方库以确保它是RB树。