[array] initilaisierung mehrdimensionaler arrays
-
int val1 = 1; int val2 = 2; int val3 = 3; int startDx1[2][2][2] = {{{0,0},{0,0}},{{val1,val1},{val1,val1}}}; int startDx2[2][2][2] = {{{0,0},{val2,val2}},{{0,0},{val2,val2}}}; int startDx3[2][2][2] = {{{0,val3},{0,val3}},{{0,val3},{0,val3}}}; for(int x1=0; x1<2; x1++){ for(int x2=0; x2<2; x2++){ for(int x3=0; x3<2; x3++){ cout<<"("<<x1<<","<<x2<<","<<x3<<") = "; <<startDx1[x1][x2][x3]<<"," <<startDx2[x1][x2][x3]<<"," <<startDx3[x1][x2][x3]<<endl; } cout<<endl; } } output (0,0,0) = 0,0,0 (0,0,1) = 0,0,3 (0,1,0) = 0,2,0 (0,1,1) = 0,2,3 (1,0,0) = 1,0,0 (1,0,1) = 1,0,3 (1,1,0) = 1,2,0 (1,1,1) = 1,2,3ist diese initialisierung korrekt und 100% save im sinne von plattformunabhängig.
wie sieht es laufzeittechnisch aus? ist diese initialisierung i.d.R. performanter als eine dreifache init-for-schleife?
-
muffmolch schrieb:
ist diese initialisierung korrekt und 100% save im sinne von plattformunabhängig.
Ist das eine Frage? Wenn ja, dann ja
Plattformabhängigkeit erreicht man nur, indem man Betriebssystem-spezifische Funktionen nutzt, z.B. "CreateFile" von Windows statt die Streaming-Stl-Klassen.muffmolch schrieb:
wie sieht es laufzeittechnisch aus? ist diese initialisierung i.d.R. performanter als eine dreifache init-for-schleife?
Oft optimiert ein Compiler die Schleifen auch einfach weg, nennt sich, glaube ich, Loop-Unrolling. Und so oder so, die Zeit, die du sparen würdest, liegt imho im Mikro-Sekunden-Bereich (oder so :)).
-
[quote="Badestrand"]
muffmolch schrieb:
ist diese initialisierung korrekt und 100% save im sinne von plattformunabhängig.
Ist das eine Frage? /quote]
ja
Badestrand schrieb:
Oft optimiert ein Compiler die Schleifen auch einfach weg, nennt sich, glaube ich, Loop-Unrolling.
das ist klar... daher schrieb ich ja i.d.R.

Badestrand schrieb:
Und so oder so, die Zeit, die du sparen würdest, liegt imho im Mikro-Sekunden-Bereich (oder so :)).
das die zeitersparnis wenn dann marginal ist ist klar... mir geht es hier v.a. um code reduzierung...