就像multiset是STL中的二进制搜索树实现一样,是否有可用的RB树或AVL树实现?
答案 0 :(得分:1)
通常,您不会将multiset
实现为二叉树。使用一个会破坏标准的性能保证,因为树可能会看起来像一个没有O(logN)插入和删除的链表。
通常std::set
/ std::multiset
/ std::map
/ std::multimap
被实现为RB树,因为它具有这些性能保证。但这不是必需的。该标准仅保证容器在不同操作中的性能,并且由实现如何实现。
如果您想保证使用RB树,您需要检查您的实施,自己动手,或者获得第三方库以确保它是RB树。