logo

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.