c++标准库中有没有红黑树或者avl树的实现?
Is there any red black tree or avl tree implementation in c++ standard library?
就像multiset是STL中的二叉搜索树实现一样,有没有可用的RB树或AVL树实现?
通常您不会将 multiset
实现为二叉搜索树。使用一个会破坏标准的性能保证,因为树最终可能看起来像一个没有 O(logN) 插入和删除的链表。
通常 std::set
/std::multiset
/std::map
/std::multimap
作为 RB 树实现,因为它具有这些性能保证。但这不是必需的。该标准仅保证容器在不同操作中的性能,如何实现由实现决定。
如果你想保证你使用的是 RB 树,你要么需要检查你的实现,自己滚动,要么获得保证它是 RB 树的第三方库。
据我的 post 了解,不,截至今天,即 2022 年 1 月 10 日,还没有用于红黑树的标准 C++ 库。
就像multiset是STL中的二叉搜索树实现一样,有没有可用的RB树或AVL树实现?
通常您不会将 multiset
实现为二叉搜索树。使用一个会破坏标准的性能保证,因为树最终可能看起来像一个没有 O(logN) 插入和删除的链表。
通常 std::set
/std::multiset
/std::map
/std::multimap
作为 RB 树实现,因为它具有这些性能保证。但这不是必需的。该标准仅保证容器在不同操作中的性能,如何实现由实现决定。
如果你想保证你使用的是 RB 树,你要么需要检查你的实现,自己滚动,要么获得保证它是 RB 树的第三方库。
据我的 post 了解,不,截至今天,即 2022 年 1 月 10 日,还没有用于红黑树的标准 C++ 库。