Vektorin kopiointi on uusi vektori, joka sisältää samat elementit kuin alkuperäinen vektori. Tässä artikkelissa opimme erilaisia tapoja kopioida vektori C ++: ssa.
Tehokkain ja helpoin menetelmä vektorin kopioimiseksi C ++: ssa on käyttää Tehtäväoperaattori (=) . Katsotaanpa esimerkkiä:
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; }
Tulos
2 4 1 5 3
C ++ tarjoaa myös enemmän menetelmiä vektorin kopioimiseksi toiseen vektoriin. Ne ovat seuraavat:
alfa-beta-leikkausesimerkki
Sisältötaulukko
- Vektorirakenteen käyttäminen
- Kopion () käyttäminen
- Vektorin määrittäminen ()
- Vektorisisällä ()
- Vector Push_back ()
Vektorirakenteen käyttäminen
Toinen helppo tapa kopioida vektori ilmoituksen yhteydessä on siirtämällä alkuperäinen vektori toisen kopiorakentajalle vektori.
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; }
Tulos
2 4 1 5 3
Kopion () käyttäminen
Se kopioida() Toiminto on menetelmämme kopioidaksesi tietoja C ++: ssa. Se voi kopioida yhden vektorin toiseen iteraattoreidensa avulla. Lisäksi copy_if () Tämän funktion variantti voi myös suorittaa selektiivisen kopion Unary Predicate -funktion perusteella.
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; }
Tulos
2 4 1 5 3
Selitys: Meidän on käytettävä back_insertor () Toiminto, jos emme ole määrittäneet vektorin koon ilmoituksen aikana. Jos meillä on jo ollut tarpeeksi tilaa, meidän on läpäistävä v2.begin () sen sijaan.
Vektorin määrittäminen ()
Se Vektori Määritä () Menetelmä vastaa = operaattorimenetelmää, mutta se tarvitsee iteraattorin kopioitavalle vektorille.
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; }
Tulos
2 4 1 5 3
Vektorisisällä ()
Se vektori insert () Menetelmä tarjoaa version, joka voi kopioida kaikki elementit tietyltä alueelta. Tätä voidaan käyttää kopioimaan koko vektori toiseen samalla tavalla kuin määrittämään () menetelmää.
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; }
Tulos
2 4 1 5 3
Vector Push_back ()
Työnnä kaikki ensimmäisen vektorin kaikki elementit toiseen vektoriin käyttämällä vektori push_back () menetelmä. Silmukka voi olla iteroida ensimmäisen vektorin läpi.
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; }
Tulos
2 4 1 5 3
Tämä menetelmä tarjoaa enemmän hallintaa, koska voimme myös muokata elementtiä tarvittaessa ennen kopiointia.