C++'da Bir Vektörü Kopyalamanın Farklı Yolları

Bir vektörün kopyalanması, orijinal vektörle aynı öğeleri içeren yeni bir vektör oluşturma işlemidir. Bu makalede C++'da bir vektörü kopyalamanın farklı yollarını öğreneceğiz.

C++'da bir vektörü kopyalamanın en etkili ve en kolay yöntemi, atama operatörü (=) .  Bir örneğe bakalım:

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

Çıkış
2 4 1 5 3  

C++ ayrıca bir vektörü başka bir vektöre kopyalamak için daha fazla yöntem sağlar. Bunlar aşağıdaki gibidir:

İçerik Tablosu

Vektör Oluşturucuyu Kullanma

Bir vektörü bildirim sırasında kopyalamanın bir başka kolay yolu, orijinal vektörü başka bir vektörün kopya yapıcısına iletmektir. vektör.

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

Çıkış
2 4 1 5 3  

kopya()'yı kullanma

kopya() işlevi, C++'da verileri kopyalamak için başvuracağımız yöntemimizdir. Yineleyicilerini kullanarak bir vektörü diğerine kopyalayabilir. Üstelik kopya_if() Bu fonksiyonun bir çeşidi aynı zamanda tekli yüklem fonksiyonu temelinde seçici kopyalama da gerçekleştirebilir.

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

Çıkış
2 4 1 5 3  

Açıklama: kullanmak zorundayız back_insertor() Bildirim sırasında vektör boyutunu belirtmemişsek, işlev. Zaten yeterli alanımız varsa geçmek zorundayız v2.begin() yerine.

Vector atama() işlevini kullanma

vektör atama() yöntem = operatör yöntemine eşdeğerdir ancak kopyalanacak vektörün yineleyicisine ihtiyaç duyar.

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

Çıkış
2 4 1 5 3  

Vector insert()'i kullanma

vektör ekleme() yöntemi, verilen aralıktaki tüm öğeleri kopyalayabilen bir sürüm sağlar. Bu, atama() yöntemine benzer şekilde vektörün tamamını bir başkasına kopyalamak için kullanılabilir.

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

Çıkış
2 4 1 5 3  

Vector push_back() işlevini kullanma

Birinci vektörün tüm elemanlarını kullanarak ikinci vektöre itin. vektör push_back() Yöntem. Bir döngü, ilk vektör boyunca yinelenmek olabilir.

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

Çıkış
2 4 1 5 3  

Bu yöntem, kopyalamadan önce gerekirse öğeyi de değiştirebileceğimiz için daha fazla kontrol sağlar.