Array unbestimmter Grösse
-
Hi allerseits,
ich bin dabei ein Programm zu erstellen, bei dessen Ablauf ein Datenpuffer( Array ?) für jeweils eine x- und eine y-Koordinate angelegt werden soll, dessen Werte nachher weiterverarbeitet werden sollen (grafische Ausgabe, speichern). Das Problem ist, dass erst wenn ein Durchlauf komplett ist feststeht, wieviele Wertepaare es insgesamt gibt( zwischen 500 und 1000 etwa), d.h. ich weiss nicht vorher wie groß z.B. ein Array für diese Daten werden soll. Hat vielleicht jemand´ne gute Idee wie man sowas machen könnte?
Gruss,
Axl.
-
Dynamisch Speicher für Array reservieren.
Schau mal in die FAQ unter dynamisches zweidimensionales Array.
-
"ich bin dabei ein Programm zu erstellen, bei dessen Ablauf ein Datenpuffer( Array ?)"
zB, oder auch ein vector:
http://www.schornboeck.net/ckurs/vector.htm
-
Hi,
in dem Vector kannst Du dann ja ein struct speichern, der x und y enthält.
struct Koordinaten{ int x; int y; }; std::vector<Koordinaten> punkte;
wenn Du aber nicht "wild" auf deb vector zugreifen mußt (z.B. punkte[10]), sondern immer alle schön der Reihe nach abfragst, dann greif lieber zur liste
std::list<Koordinaten> punkte:
das ist dann wesentlich schneller, oder nimm einen Baum.
grüße Con@n
-
Seit wann ist eine Liste beim durchlaufen schneller? Ganz im Gegenteil, eine Liste ist langsamer als ein Vector (dyn. Array).
Also, ein Vector ist optimal, wenn man hauptsächlich viele Elemente am Stück anlegt und später wieder lesen will.
-
Artchi schrieb:
Also, ein Vector ist optimal, wenn man hauptsächlich viele Elemente am Stück anlegt und später wieder lesen will.
da laß dir mal gesagt sein: nein.
aber die liste ist doch lahmer und der baum war ein witz.
-
Danke euch Leute,
was das Thema angeht bin ich jetzt was schlauer geworden.