STL set、map实现为什么要以红黑树为底层实现机制?

红黑树是一种特殊的平衡二叉搜索树,为什么set、map的实现要采用红黑树?

为什么不用heap?

set 、map都要求自动排序,heap也能实现自动排序啊,为什么不用heap?

我认为最重要的原因:STL中heap是基于vector实现的,而vector是连续线性空间,这不符合set的集合性质!

为什么不用二叉搜索树?

可能不平衡,造成搜索深度过大!

为什么不用平衡二叉搜索树(AVL树)?

这点有待全面理解红黑树的特点再给出结论。

原文地址:https://www.cnblogs.com/helloweworld/p/3098901.html