[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,3
    

    ist 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...


Anmelden zum Antworten