teile eines vectors ans ende eines anderen kopieren



  • Huhuuu,

    ich möchte aus meinem einen vector vec_1

    vector<int> vec_1;
    

    die Stellen 0-50 an das Ende meines vectors vec_2

    vector<int> vec_2;
    

    verschieben (also kopieren und löschen).

    Habe gefunden das es die Funktion

    std::copy()
    

    gibt und in dem vector kann ich dann mit

    vec_2.erase()
    

    die Stellen löschen.

    Aber wie kann ich denn jetzt die stellen 0-50 ansprechen und wie kann ich sagen dass das an Ende des anderen vector geschrieben werden kann?

    Danke an Euch alle!!!



  • #include <vector>
    #include <algorithm> // std::copy()
    #include <iterator>  // std::back_inserter()
    
    // Möglichkeit 1
    std::copy(vec_1.begin(), vec_1.begin() + 50, std::back_inserter(vec_2));
    
    // Möglichkeit 2
    vec_2.insert(vec_2.end(), vec_1.begin(), vec_1.begin() + 50);
    


  • SUPER!! vielen vielen Dank!!



  • Wobei ich bei Möglichkeit 1 evtl.

    vec_1.reserve(vec_1.size() + 50);
    

    vorschieben würde um mehrfaches schrittweises Vergrößern von vec_1 zu vermeiden.


Anmelden zum Antworten