PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : xD-vector oder 1D-vector



mile04
09-02-2005, 20:12
hallo
ist es besser mit einem mehrdimensionalen vector zu arbeiten oder mit mehreren eindimensionalen vectoren? d.h. was ist lieber z.B. eine 2D-Vector als matrix oder zwei 1D-vectoren zu benutzen? Warum?
hat das mit Speicherverwaltung oder schnelligkeit zu tun !!??

Vielen Dank

mile04
10-02-2005, 12:30
hallo
gemeint ist:
std::vector<int> v;
std::vector<std::vector<int> >matrix;

Giuly
18-03-2005, 00:15
Nimm map. Oder noch besser: hashmap (ist aber nicht std-c++, musst du dir selber bauen)

RHBaum
18-03-2005, 08:26
wenn du auf geschwindigkeit aus bist :

- wenn du die groesse vorher weisst, oder die max groesse 100% weisst und den platz im speicher entbehren kann, und dein Array noch aufn Stack passt:

nimm statische Arrays, am besten in kombination mit nem template.

- musst du dynamisch allokieren, weil wegen der menge oder weil groesse zu unbekannt , nimm nen stl container.

welcher container haengt von der art des Zugriffes ab: musst schnell ueber index sein -> vector
musst schnell anfuegen und am anfang / ende loeschen koennen -> liste bzw stack queue ....
zugriff ueber hash, oder schluesselwerte ueber logarithmische(Baume) suchmethoden -> map / set / hasmap

man kann die aber auch kompinieren ...

die stl optimiert releativ gut, so dass es "fast" egal iss, ob du vector<vector<X> > verwendest .....
wobei beim index zugriff nen einfacher vector schneller iss, wenn deine umrechnung auf die dimension ne einfache multiplikation iss ... wie gesagt kommt auch bisser auf den zugriff an

Ciao ...