Array Größe ?
-
lässt sich nicht kompilieren

-
Bei den Fragen die du stellst, wird der Geschwindigkeitsunterschied natürlich das wichtigste an deinem Programm sein.
-
dan füg halt noch das array ein, ergibt sich doch oder, habe es nur schnell aus der pdf file kopier. int a[Max];
ja die Geschwindigkeit ist wichtig, da es was mit bewegten Grafiken zu tun hat und noch einiges dazu kommt, so 'ringe' ich schon um das schnellste Verfahren.
aber ich habe jetzt vector genommen wie schon erwähnt und ich glaube nicht, daß wir jetzt noch das Forum mit unnötigen Beiträgen belasten sollten. Andere wollen bestimmt auch noch einen Überblick zu Thema behalten.
Meine Frage wurde beantwortet, es geht nicht so wie ich es wollte, so bin ich zu vector gegangen und es funktioniert auch.
danke nochmals an alle 'Antworter'
-
vector verwendet intern normalerweise ein (dynamisches) array. die zugriffsfunktionen werden inline gemacht, am ende erzeugt der compiler also nicht viel unterschiedlichen code. natürlich kannst du als benutzer, wenn du nichts über die interna (d)eines vectors weißt, ziemlich viel verlangsamen.
den vergleich zu
int a[Max](ohne new, nicht dynamisch) dürfte man übrigens nicht mit vector machen, sondern mitstd::tr1::arraybzw.boost::arraymachen.nachdem ich mir kurz einen vergleich angetan habe zwischen einem dynamischen array und einem vector (mit dem code, den du gepostet hast), komme ich mit gcc 4.2.2 und -O3 auf folgendes ergebnis:
bash-3.2$ time -p ./test_vector_O3
real 0.17
user 0.12
sys 0.00
bash-3.2$ time -p ./test_array_O3
real 0.12
user 0.07
sys 0.00
bash-3.2$ time -p ./test_dynarray_O3
real 0.24
user 0.18
sys 0.00
bash-3.2$mit -O0 allerdings:
bash-3.2$ time -p ./test_vector_O0
real 1.03
user 0.75
sys 0.00
bash-3.2$ time -p ./test_array_O0
real 0.48
user 0.37
sys 0.00
bash-3.2$ time -p ./test_dynarray_O0
real 0.73
user 0.48
sys 0.00
bash-3.2$interessanterweise stellt sich die reihenfolge bei -O1 nochmals um:
bash-3.2$ time -p ./test_vector_O1
real 0.20
user 0.16
sys 0.00
bash-3.2$ time -p ./test_array_O1
real 0.26
user 0.20
sys 0.00
bash-3.2$ time -p ./test_dynarray_O1
real 0.22
user 0.18
sys 0.00
bash-3.2$hier ist also vector am schnellsten, das dynamische array an zweiter stelle und das array an letzter.
jeweils +/- bis zu 0.02 bei user time.
soviel zur aussagekräftigkeit dieses vergleichs
