Hash Table vergrößern
-
Hallo liebe C++ Gemeinde,
ich verwende ein große Hash Tabelle. Dazu benutze ich die standard c++ hash tabelle "ext/hash_map". Die maximale Anzahl von Einträgen sind 27 Millionen, logisch das es irgendwann zu Kollisionen kommt und die Laufzeit ziemlich in den Keller geht.
Klar würde eine Datenstruktur mit konstantem Zugriff schneller gehen, aber leider zu viel speicher verschwenden.
Ich wäre auch bereit den Speicher ein wenig zu erhöhen. Nach meiner Info-Bildung dürfte das gehen, wenn man die Anzahl der internen Indizes erhöht...also die Anzahl der internen Speicherplätze in der Hash-Liste. Das würde die Hash-Liste auch wieder schneller machen....
aber nun die FRAGE:Wie kann ich die C++ standard hash_map (benutzt zsm mit der standard hash funktion) erweitern und mehr internen speicher schaffen, um kollisionen zu verringern?????
Wäre super, wenn jemand ne Antwort weiß

Ich danke euch,
ciao,
Sebastian
-
niemand ne idee, wie man die range von der Abbildung der Keys vergrößert?????

-
Hallo
Dazu benutze ich die standard c++ hash tabelle "ext/hash_map"
Da es im C++ Standard (noch) keine HashMap gibt weiß wohl keiner welche Herstellerabhängige du meinst.
bis bald
akari
-
na also ich dachte es gäbe eine standard hash_map..
zumindest benutze ich: stdext::hash_map
http://www.google.de/search?hl=de&q=stdext+hash_map&btnG=Suche&meta=
und dazu die std::ext hash funktion.hat die von euch schonmal jemand benutzt und kann erfahrungen mitteilen und vielleicht auch die frage von oben beantworten???
Sebastian
-
Hallo
wenn du diese HashMap benutzt : Das ist eine Microsoft-eigene Klasse, die deshalb auch im Namespace stdext steht. Die eigentlichen Interfaces der echten Standardklassen sind aber im Namespace std.
bis bald
akari
-
sebastian_v_b schrieb:
...stdext::hash_map...
"ext" steht übrigens fast überall für
- "extension" ... in diesem Fall eine Erweiterung über den Standard hinaus oder
- "extern" ... wohl doch eher "außerhalb des Standards"

Gruß,
Simon2.
-
Vielen Dank für eure Antworten.
Ok, ich benutze die hash_map von microsoft, und als normales interface das aus std...
aber irgendwie ist damit die frage noch nicht in meinen augen beantwortet?!
weiss denn jemand, wie ich die hasp_map so verändern kann, dass die hash_funktion nen größeren funktionswert hat, und damit die hash_map auch mehr indices????
oder habt ihr ne idee, wie das bei ner anderen hash_map geht, die man irgendwo frei bekommt und könnt mir nen code schnipsel schicken?
danke nochmals,
Sebastian