Diferentes maneiras de copiar um vetor em C++
Copiar um vetor é o processo de criação de um novo vetor que contém os mesmos elementos do vetor original. Neste artigo aprenderemos diferentes maneiras de copiar um vetor em C++.
O método mais eficiente e fácil de copiar um vetor em C++ é usando operador de atribuição (=) . Vejamos um exemplo:
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 ; }
Saída
2 4 1 5 3
C++ também fornece mais métodos para copiar um vetor em outro vetor. Eles são os seguintes:
Índice
- Usando o construtor vetorial
- Usando cópia()
- Usando vetor atribuir()
- Usando inserção de vetor()
- Usando vetor push_back()
Usando o construtor vetorial
Outra maneira fácil de copiar um vetor no momento da declaração é passar o vetor original para o construtor de cópia de outro vetor. vetor.
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 ; }
Saída
2 4 1 5 3
Usando cópia()
O cópia() function é nosso método preferido para copiar dados em C++. Ele pode copiar um vetor para outro usando seus iteradores. Além disso o copiar_se() variante desta função também pode realizar cópia seletiva com base em uma função de predicado unária.
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 ; }
Saída
2 4 1 5 3
Explicação: Temos que usar back_insertor() função se não tivermos especificado o tamanho do vetor durante a declaração. Se já tivermos espaço suficiente, teremos que passar v2.begin() em vez de.
Usando vetor atribuir()
O atribuição de vetor() O método é equivalente ao método do operador =, mas precisa do iterador para o vetor a ser copiado.
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 ; }
Saída
2 4 1 5 3
Usando inserção de vetor()
O inserção de vetor() O método fornece uma versão que pode copiar todos os elementos de um determinado intervalo. Isso pode ser usado para copiar o vetor inteiro para outro de maneira semelhante ao método assign().
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 ; }
Saída
2 4 1 5 3
Usando vetor push_back()
Empurre todos os elementos do primeiro vetor para o segundo vetor usando vetor push_back() método. Um loop pode ser iterar através do primeiro vetor.
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 ; }
Saída
2 4 1 5 3
Este método fornece mais controle, pois também podemos modificar o elemento, se necessário, antes de copiar.