Ein rot-schwarzer Baum, der mehrmals denselben Schlüssel hat: Sammlungen in den Knoten speichern oder als mehrere Knoten speichern?

Anscheinend könnte man beides tun, aber ersteres ist üblicher.

Warum würden Sie letzteres wählen und wie funktioniert es?

Ich lese das:http://www.drdobbs.com/cpp/stls-red-black-trees/184410531; was mich denken ließ, dass sie es taten. Es sagt:

insert_always ist eine Statusvariable, die rb_tree mitteilt, ob mehrere Instanzen desselben Schlüsselwerts zulässig sind. Diese Variable wird vom Konstruktor festgelegt und von der STL verwendet, um zwischen set und multiset sowie zwischen map und multimap zu unterscheiden. set und map können nur ein Vorkommen eines bestimmten Schlüssels haben, während multiset und multimap mehrere Vorkommen haben können.

Obwohl ich jetzt denke, dass es das nicht unbedingt bedeutet. Möglicherweise verwenden sie noch Container.

Ich denke, dass alle Knoten mit dem gleichen Schlüssel in einer Reihe sein müssten, weil Sie entweder alle Knoten mit dem gleichen Schlüssel auf der rechten oder der linken Seite speichern müssen. Wenn Sie also gleiche Knoten rechts speichern und 1000 1s und eine 2 einfügen, haben Sie im Grunde eine verknüpfte Liste, die die Eigenschaften des rot-schwarzen Baums ruinieren würde.

Ist der Grund, warum ich nicht viel finden kann, dass es nur eine schlechte Idee ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage