Es gibt Seiten wie diese:
Das heißt, man kann anstelle einer Klasse einen Funktionszeiger für das Argument Hash
und Pred
der Klassenvorlage std::unordered_map
angeben. Es gibt jedoch keine Beispiele, und ich habe es nicht geschafft, diese Funktion zum Funktionieren zu bringen, wenn es überhaupt möglich ist. Nicht funktionierendes Beispiel:
Es gibt Seiten wie diese:
Das heißt, man kann anstelle einer Klasse einen Funktionszeiger für das Argument %code% und %code% der Klassenvorlage %code% angeben. Es gibt jedoch keine Beispiele, und ich habe es nicht geschafft, diese Funktion zum Funktionieren zu bringen, wenn es überhaupt möglich ist. Nicht funktionierendes Beispiel:
%Vor%Das heißt, man kann anstelle einer Klasse
einen Funktionszeiger angeben
Nein, das ist ein Missverständnis. Sie können anstelle des -Objekts einen Funktionszeiger für den -Konstruktor bereitstellen. Der Vorlagenparameter ist immer noch ein Typ - in diesem Fall der Typ eines Funktionszeigers. Du musst also
schreiben %Vor%Ihre Standardbibliothek definiert einen Standardwert für den ersten Parameter, aber dieser Standardwert ist nicht standardisiert. Offenbar gibt es keine Möglichkeit, den herstellerspezifischen Standardwert für n beizubehalten und gleichzeitig die Werte der Funktoren festzulegen. Meine Verwendung von 4 ist hier ziemlich willkürlich.
Sie sollten stattdessen die Verwendung von standardkonstruierbaren Funktionsobjekten in Betracht ziehen. Nicht nur das wird Ihnen erlauben, ohne Angabe der minimalen Bucket-Größe wegzukommen, es wird auch potentiell schneller sein, da Funktoren viel einfacher für den Compiler zu inlinern sind.