Copiar un vector és el procés de creació d’un nou vector que conté els mateixos elements que el vector original. En aquest article aprendrem diferents maneres de copiar un vector a C ++.
El mètode més eficient i fàcil de copiar un vector a C ++ és mitjançant l'ús Operador d'assignació (=) . Mirem un exemple:
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; }
Producció
2 4 1 5 3
C ++ també proporciona més mètodes per copiar un vector en un altre vector. Són els següents:
Taula de contingut
- Utilitzant el constructor vectorial
- Utilitzant còpia ()
- Utilitzant vector assignació ()
- Utilitzant vector inserció ()
- Utilitzant vector push_back ()
Utilitzant el constructor vectorial
Una altra manera fàcil de copiar un vector en el moment de la declaració és passant el vector original al constructor de còpia d'un altre vector.
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; }
Producció
2 4 1 5 3
Utilitzant còpia ()
El còpia () La funció és el nostre mètode ideal per copiar dades a C ++. Pot copiar un vector a un altre mitjançant els seus iteradors. A més, copy_if () La variant d'aquesta funció també pot realitzar una còpia selectiva sobre la base d'una funció predicada unària.
java divideix la cadena per delimitadorC++
#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; }
Producció
2 4 1 5 3
Explicació: Hem d’utilitzar back_insertor () Funció Si no hem especificat la mida del vector durant la declaració. Si ja hem tingut prou espai, hem de passar v2.Begin () en canvi.
Utilitzant vector assignació ()
El Vector Assign () El mètode equival al mètode = operador, però necessita que es copiï el iterador al vector.
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; }
Producció
2 4 1 5 3
Utilitzant vector inserció ()
El Vector Inserir () El mètode proporciona una versió que pot copiar tots els elements del rang donat. Es pot utilitzar per copiar tot el vector a un altre de manera similar al mètode Assigna ().
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; }
Producció
2 4 1 5 3
Utilitzant vector push_back ()
Empenyeu tots els elements del primer vector al segon vector mitjançant l'ús vector push_back () Mètode. Un bucle pot ser iterar a través del primer vector.
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; }
Producció
2 4 1 5 3
Aquest mètode proporciona més control, ja que també podem modificar l’element si cal abans de copiar.