logo

Eri tapoja kopioida vektori C ++: ssa

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

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.