[C++] Hashtable

Hallo,

kennt jemand eine gute C+±Klasse ähnlich einer Java-Hashtable? Hintergrund: ich will einen eindeutigen char* eingeben und idealerweise einen Pointer auf eine von mir definierte Klasse zurückkriegen.
Das Ding darf natürlich nicht irgendwas MFC-spezifisches sein, muss auf Linux mit gcc compilieren…

Danke
Bruno

Hi,

kennt jemand eine gute C+±Klasse ähnlich einer
Java-Hashtable? Hintergrund: ich will einen eindeutigen char*
eingeben und idealerweise einen Pointer auf eine von mir
definierte Klasse zurückkriegen.

Du suchst den STL-Container map. Was Du zurueckkriegst ist da eine structur pair, und pair.second ist Dein pointer. STL heisst standard template library (die C++ standard Bibliothek). Ein template ist ein „Muster“, das fuer verschiedene Datentypen verwendet werden kann. In Deinem Fall brauchst Du eine map. Ich nehme an char* soll ein C-String sein, sowas boeses sollte man moeglichst nicht mehr verwenden, nimm statt dessen die Klasse string (ebenfalls STL), die ist sicherer und bietet mehr comfort. Ausserdem weiss ich nicht, ob das mit char* so funktioniert, wie Du dir das vorstellst … bezweifle ich ehrlich gesagt.
Wo wir schon dabei sind: Arrays sollten auch nicht mehr verwendet werden (ausser fuer extrem geschwindigkeits und speichersensible Programmteile). Statt double x[n] heisst es jetzt vector x. Wieder ein Template aus der STL (das vector Template hat mir schon Wochen meiner Arbeitszeit gespart, die ich sonst in debugging gesteckt haette!).
map produziert uebrigens einen echt fetten overhead, nur als Warnung.
Die STL bietet noch zahlreiche andere extrem nuetzliche Templates und Klassen. Man sollte sich als C+±Programmierer unbedingt damit befassen. Als Reference ist http://www.dinkumware.com gut geeignet, als Einfuehrung ist Band 2 von thinking in C++ von Bruce Eckel sehr gut (frei downloadbar unter http://www.bruceeckel.com ).

Ich hoffe geholfen zu haben. Sorry, wenn ich Sachen erzaehlt habe, die Du schon weisst.

Gruss

Thorsten