在此map
示例中:
std::map<int, int> m;
for (int i = 0; i < 1000; i++)
m[2*i] = i;
for (i = 0; i < 1000; i++) // just an example of filling a map
m[2*i + 1] = i;
如何知道内部&#34;红黑树&#34;会是什么样子?
哪些节点将是其他节点的子节点?
在这样一个简单的例子中理解这个(视觉上),可以让我更好地掌握红黑树地图的实现方式。
我阅读了很多答案,例如Why is std::map implemented as a red-black tree?关于std::map
作为红黑树的实施,但它没有帮助。我还阅读了Red–black tree,但是,在地图的情况下,一个简单的例子将有助于理解它是如何工作的。
答案 0 :(得分:1)
如果不深入了解供应商std::map
实施的内部结构,您无法知道。例如,在供应商make std::map<int
上使用尝试而不是红黑树。
该标准允许多种不同的选择,供应商不同意某些单一的最佳选择。