PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vector && Hashtable in C++



itsme
19-10-2003, 22:01
Hallo mal wieder!

Ich programmiere seit einigen Jahren mit Java und probiere gerade mit C++ rum. In Java gibt es ja die praktischen Objekte Vector und Hashtable. Was nehme ich bei C++ dafür? Gibt es da irgendwelche Standardobjekte oder muss ich mir selbst was basteln?

Danke!

wraith
19-10-2003, 22:11
std::vector ist etwa das was in Java eine ArrayList ist.
std::list ist eine Doppeltverkettete Liste.
std::map ist ein Assoziativer Container (intern meist als Red-Black-Tree implementiert,also sind Einfüge/Suche O(log(n)) Operationen).

Eine Hashmap gibt es noch nicht im C++ Standard,aber viele Implementierungen liefern bereits eine mit aus (leider ist das Interfaces nicht standardisiert,daher unterscheiden sich die Implementierungen etwas).
Beim gcc wäre Hashmap in hash_map definiert (iirc im namespace Sgi).

anda_skoa
19-10-2003, 22:57
Naja, ich würde aber auch in Java eher eine Treemap nehmen statt einer Hashmap.
Bei Treemap hat man garantierte Schranken, bei Hashmap müsste man wissen wie der Hash berechnet wird um abschätzen zu können, ob es sich ausszahlt.

Ciao,
_

RapidMax
20-10-2003, 00:41
Original geschrieben von anda_skoa
Naja, ich würde aber auch in Java eher eine Treemap nehmen statt einer Hashmap.
Bei Treemap hat man garantierte Schranken, bei Hashmap müsste man wissen wie der Hash berechnet wird um abschätzen zu können, ob es sich ausszahlt.

Du kannst das template ja mit dem entsprechenden Hash-Algorithmus instanzieren, dann weisst du es... Was spricht - abgesehen vom Aufwand - dagegen, schliesslich hat man ja einen Grund, eine Hashmap verwenden zu wollen?

Gruss, Andy

itsme
20-10-2003, 10:23
Danke für die Antworten. Ich werde mir das mal ansehen!