【问题标题】:Red-black tree in C++ STLC++ STL 中的红黑树
【发布时间】:2022-07-30 15:22:49
【问题描述】:

在当前的 C++ STL 中,红黑树在哪里使用? (我假设map和set呢?)红黑树是使用2-3树(即只有左或右孩子可以是红色)还是2-3-4树(即左右孩子都可以是红色)? STL中有红黑树库吗?

【问题讨论】:

    标签: c++ red-black-tree


    【解决方案1】:

    std::map、std::multimap、std::set 和 std::multiset 通常以红黑树的形式实现,但标准并未强制要求这样做。由于不需要使用红黑树,因此也不需要任何特定风格的 RB 树。

    我相信(虽然不确定)SGI 的 STL(大部分原始标准库都基于此)实际上确实有可用的红黑树。如果有帮助,我知道 boost::intrusive 确实有一个可重用的红黑树实现。

    【讨论】: