Ich habe versucht zu verstehen, warum die Hash-Tabelle (ungeordnete Container wie ungeordnete_map oder ungeordnete_menge) keine Schnittstelle für die Abfrage oder Einstellung des minimalen Ladefaktors bietet.
Sprich, c ist ein ungeordneter_Satz, den ich verwenden kann
%Vor%zum Abfragen
und
%Vor%für die Einstellung.
Warum bietet C ++ 11 keine Schnittstelle für die Abfrage von min_load_factor? Gibt es Implementierungsdetails, die erklären würden?
Auch C ++ STL von Josuttis erwähnt folgendes:
Der minimale Ladefaktor, der verwendet wird, um ein erneutes Laden zu erzwingen, wenn die Anzahl der Elemente im Container schrumpft, kann nicht beeinflusst werden.
Der Ladefaktor in unordered_map
beeinflusst die Kollisionswahrscheinlichkeit in der Hash-Tabelle. Zum Beispiel die Wahrscheinlichkeit, dass sich zwei Elemente in demselben Bucket befinden. Der Container verwendet den Wert von max_load_factor
als Schwellenwert, der eine Erhöhung der Anzahl der Buckets erzwingt und somit zu einer erneuten Wiederherstellung führt.
Es gibt keinen benutzersteuerbaren Mindestlastfaktor, da die Anzahl der bereits im Container vorhandenen Elemente berücksichtigt werden sollte.