Različiti načini kopiranja vektora u C ++

Kopiranje vektora je postupak stvaranja novog vektora koji sadrži iste elemente kao i izvorni vektor. U ovom ćemo članku naučiti različite načine kopiranja vektora u C ++.

Najučinkovitija i najlakša metoda kopiranja vektora u C ++ je upotrebom Operator dodjele (=) .  Pogledajmo primjer:

C++
   #include          using     namespace     std  ;   int     main  ()     {      vector   <  int  >     v1     =     {  2       4       1       5       3  };      // Assigning the vector v1 to vector v2      vector   <  int  >     v2     =     v1  ;      for     (  auto     i     :     v2  )      cout      < <     i      < <     ' '  ;      return     0  ;   }   

Izlaz
2 4 1 5 3  

C ++ također pruža više metoda za kopiranje vektora u drugi vektor. Oni su sljedeći:

Tablica sadržaja

Korištenje vektorskog konstruktora

Još jedan jednostavan način kopiranja vektora u vrijeme deklaracije je prenošenje izvornog vektora konstruktoru kopiranja drugog vektor.

C++
   #include          using     namespace     std  ;   int     main  ()     {      vector   <  int  >     v1     =     {  2       4       1       5       3  };      // Copying vector v1 into vector v2      vector   <  int  >     v2  (  v1  );      for     (  auto     i     :     v2  )      cout      < <     i      < <     ' '  ;      return     0  ;   }   

Izlaz
2 4 1 5 3  

Korištenje kopiranja ()

A kopirati() Funkcija je naša metoda za kopiranje podataka u C ++. Može kopirati jedan vektor u drugi koristeći svoje iteratore. Štoviše copys_if () Varijanta ove funkcije također može izvesti selektivnu kopiju na temelju Unar -ove predikatne funkcije.

C++
   #include          using     namespace     std  ;   int     main  ()     {      vector   <  int  >     v1     =     {  2       4       1       5       3  };      vector   <  int  >     v2  ;      // Copying vector v1 into vector v2      copy  (  v1  .  begin  ()     v1  .  end  ()     back_inserter  (  v2  ));      for     (  auto     i     :     v2  )      cout      < <     i      < <     ' '  ;      return     0  ;   }   

Izlaz
2 4 1 5 3  

Obrazloženje: Moramo koristiti back_insertor () Funkcija ako nismo naveli vektorsku veličinu tijekom deklaracije. Ako smo već imali dovoljno prostora, onda moramo proći v2.Begin () umjesto toga.

Korištenje vektorskog dodjele ()

A vektor dodjeljivanje () Metoda je ekvivalentna metodi = Operator, ali potreban mu je iterator vektora koji će se kopirati.

C++
   #include          using     namespace     std  ;   int     main  ()     {      vector   <  int  >     v1     =     {  2       4       1       5       3  };      vector   <  int  >     v2  ;      // Copying the vector v1 into vector v      v2  .  assign  (  v1  .  begin  ()     v1  .  end  ());      for     (  auto     i     :     v2  )      cout      < <     i      < <     ' '  ;      return     0  ;   }   

Izlaz
2 4 1 5 3  

Korištenje Vector Insert ()

A Vektor Insert () Metoda pruža verziju koja može kopirati sve elemente iz zadanog raspona. Ovo se može koristiti za kopiranje cijelog vektora u drugi na sličan način kao i Metoda dodjeljivanja ().

C++
   #include          using     namespace     std  ;   int     main  ()     {      vector   <  int  >     v1     =     {  2       4       1       5       3  };      vector   <  int  >     v2  ;      // Copying vector v1 into vector v2      v2  .  insert  (  v2  .  begin  ()     v1  .  begin  ()     v1  .  end  ());      for     (  auto     i     :     v2  )      cout      < <     i      < <     ' '  ;      return     0  ;   }   

Izlaz
2 4 1 5 3  

Korištenje Vector Push_Back ()

Gurnite sve elemente prvog vektora u drugi vektor pomoću vector push_back () metoda. Petlja se može ponavljati kroz prvi vektor.

C++
   #include          using     namespace     std  ;   int     main  ()     {      vector   <  int  >     v1     =     {  2       4       1       5       3  };      vector   <  int  >     v2  ;      // Copying vector v1 into vector v2      for     (  auto     i     :     v1  )      v2  .  push_back  (  i  );      for     (  auto     i     :     v2  )      cout      < <     i      < <     ' '  ;      return     0  ;   }   

Izlaz
2 4 1 5 3  

Ova metoda pruža veću kontrolu jer i mi možemo izmijeniti element ako je potrebno prije kopiranja.