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
- 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.