【发布时间】:2012-05-03 09:13:01
【问题描述】:
如果我将有序(递增)元素序列插入到地图中,最终的二叉树会以某种方式优化吗?或者每个元素都会有一个“正确”的孩子?这会使这样的树非常低效,因为那么查找将是线性的。
我找不到任何有关将过程插入 STL 映射的详细信息。
【问题讨论】:
-
这完全依赖于实现,除非您不担心可移植性,否则您不应真正依赖实现特定的行为。您应该只依赖@987654321 的行为 @ 应该展示。
-
@Als “依赖于实现特定的行为”与从理解的角度了解行为是如何实现的是有区别的。
-
@Benj:这就是我发表评论的原因,你反对吗?
-
你们说的都很对。通常人们倾向于依赖这些信息——尽管我只是想知道。 :-)
-
@HWende:如果你想知道,请阅读STL的代码,可以免费下载。如果您说的是 c++ 标准库,而不是 stl,那么您应该阅读您正在使用的特定实现。它可以以不同的方式实现,尽管 rb 树是最常见的,但您肯定会发现不同的实现,例如跳过列表、avl 树、b 树...