Različni načini kopiranja vektorja v C ++

Kopiranje vektorja je postopek ustvarjanja novega vektorja, ki vsebuje enake elemente kot originalni vektor. V tem članku se bomo naučili različnih načinov kopiranja vektorja v C ++.

Najučinkovitejša in najlažja metoda za kopiranje vektorja v C ++ je z uporabo Operator dodelitve (=) .  Oglejmo si primer:

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  ;   }   

Izhod
2 4 1 5 3  

C ++ ponuja tudi več metod za kopiranje vektorja v drug vektor. So takšni:

Tabela vsebine

Z uporabo vektorskega konstruktorja

Drug enostaven način za kopiranje vektorja v času deklaracije je s prenašanjem originalnega vektorja na konstruktor kopij drugega 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  ;   }   

Izhod
2 4 1 5 3  

Uporaba kopije ()

The kopiraj () Funkcija je naša metoda Go-to za kopiranje podatkov v C ++. Enega vektorja lahko kopira v drugega s svojimi iteratorji. Poleg tega copy_if () Varianta te funkcije lahko izvede tudi selektivno kopijo na podlagi funkcije UNAY predikata.

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  ;   }   

Izhod
2 4 1 5 3  

Pojasnilo: Uporabiti moramo Back_inSertor () Funkcija, če med deklaracijo nismo določili velikosti vektorja. Če smo že imeli dovolj prostora v2.begin () namesto tega.

Uporaba vektorske dodelitve ()

The vektorska dodelitev () Metoda je enakovredna metodi = operater, vendar potrebuje iterator do vektorja, ki ga je treba 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  ;   }   

Izhod
2 4 1 5 3  

Uporaba vektorskega vstavka ()

The vektorski vložek () Metoda ponuja različico, ki lahko kopira vse elemente iz danega območja. To lahko uporabite za kopiranje celotnega vektorja na drugega na podoben način kot metoda Assign ().

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  ;   }   

Izhod
2 4 1 5 3  

Uporaba vektorskega push_back ()

Vse elemente prvega vektorja potisnite v drugi vektor z uporabo vektor push_back () metoda. Zanka je lahko ponovitev skozi 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  ;   }   

Izhod
2 4 1 5 3  

Ta metoda zagotavlja več nadzora, saj lahko pred kopiranjem spremenimo tudi element, če je potrebno.