Dažādi veidi, kā kopēt vektoru C ++

Vektora kopēšana ir jauna vektora izveidošanas process, kurā ir vienādi elementi kā sākotnējais vektors. Šajā rakstā mēs iemācīsimies dažādus veidus, kā kopēt vektoru C ++.

Visefektīvākā un vienkāršākā metode vektora kopēšanai C ++ ir, izmantojot Piešķiršanas operators (=) Apvidū  Apskatīsim piemēru:

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

Izvade
2 4 1 5 3  

C ++ nodrošina arī vairāk metožu vektora kopēšanai citā vektorā. Tie ir šādi:

Satura rādītājs

Izmantojot vektoru konstruktoru

Vēl viens vienkāršs veids, kā nokopēt vektoru deklarācijas laikā vektors.

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

Izvade
2 4 1 5 3  

Izmantojot kopiju ()

Līdz kopēt () Funkcija ir mūsu rīcības metode datu kopēšanai C ++. Tas var kopēt vienu vektoru uz otru, izmantojot viņu iteratorus. Turklāt copy_if () Šīs funkcijas variants var arī veikt selektīvu kopiju, pamatojoties uz vienotu predikātu funkciju.

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

Izvade
2 4 1 5 3  

Paskaidrojums: Mums ir jāizmanto back_insertor () Funkcija, ja deklarācijas laikā mēs neesam norādījuši vektora lielumu. Ja mums jau ir bijis pietiekami daudz vietas, mums ir jāiet garām v2.begin () tā vietā.

Izmantojot vektora piešķiršanu ()

Līdz vektora piešķiršana () Metode ir līdzvērtīga = operatora metodei, bet tai ir nepieciešams kopēt vektoru iteratoru.

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

Izvade
2 4 1 5 3  

Izmantojot vektora ieliktni ()

Līdz vektora ieliktnis () Metode nodrošina versiju, kas var kopēt visus elementus no dotā diapazona. To var izmantot, lai kopētu visu vektoru uz citu līdzīgi kā piešķirt () metodi.

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

Izvade
2 4 1 5 3  

Izmantojot vektora push_back ()

Piespiest visus pirmā vektora elementus otrajā vektorā, izmantojot vektora push_back () metode. Cilpa var būt atkārtota caur pirmo vektoru.

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

Izvade
2 4 1 5 3  

Šī metode nodrošina lielāku kontroli, jo pirms kopēšanas mēs varam arī modificēt elementu, ja nepieciešams.