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
- kopya()'yı kullanma
- Vector atama() işlevini kullanma
- Vektör ekleme() işlevini kullanma
- Vektör push_back()'i kullanma
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.