array füllen



  • ich arbeite an einem Programm in der sehr schnell ein Haufen Arrays gefüllt werden sollen.
    dabei sind die arrays selten komplett gefüllt

    jetzt hab ich mich gefragt, weleches dieser beiden schneller ist:

    char dest[256]
    char source[256]
    fill(source);
    int numval
    for(int i=0;i<numval;i++){
    dest[i]=source[i];
    }
    //oder
    dest=source;
    
    }
    


  • Das zweite ist falsch. Ansonsten memcpy fuer chars.



  • dest = source funktioniert doch garnicht. (Es sei denn du würdest sinnvollerweise std::array oder std::vector nutzen.)
    Um Speicherblöcken einen Wert zuzuweisen solltest du std::fill nutzen, um zu Kopieren std::copy.



  • alterbro schrieb:

    dabei sind die arrays selten komplett gefüllt

    char dest[256]
    char source[256]
    

    Du willst std::vector , und wahrscheinlich sollte der Datentyp eher unsigned char sein?

    alterbro schrieb:

    dest=source;
    

    Das geht nicht. Jetzt muss ich dich schon mal fragen, seit wann und womit du C++ lernst.

    Wie wäre es denn hiermit?

    char s[] = { 0,1,2,3,4,5,6,7,8,9 };
    	std::vector<char> source(s,s+10);
    
    	std::vector<char> dest = source;
    


  • ja habs auch gerade gemerkt, sorry


Anmelden zum Antworten