logo

Различни начини за копиране на вектор в C ++

Копирането на вектор е процесът на създаване на нов вектор, който съдържа същите елементи като оригиналния вектор. В тази статия ще научим различни начини за копиране на вектор в C ++.

Най -ефективният и най -лесен метод за копиране на вектор в C ++ е чрез използване Оператор за присвояване (=) .  Нека да разгледаме пример:



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; } 

Изход
2 4 1 5 3 

C ++ също така предоставя повече методи за копиране на вектор в друг вектор. Те са както следва:

Съдържание

Използване на Vector Constructor

Друг лесен начин за копиране на вектор по време на декларацията е чрез предаване на оригиналния вектор на конструктора на копие на друг вектор.



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; } 

Изход
2 4 1 5 3 

Използване на copy ()

The copy () Функцията е нашият метод за копиране на данни в C ++. Той може да копира един вектор в друг, използвайки техните итератори. Освен това copy_if () Вариант на тази функция може също да извърши селективно копие въз основа на функция на предикат на Unary.

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; } 

Изход
2 4 1 5 3 

Обяснение: Трябва да използваме back_insertor () функция, ако не сме посочили размера на вектора по време на декларацията. Ако вече сме имали достатъчно място, тогава трябва да преминем v2.begin () вместо това.

Използване на Vector Assign ()

The векторна присвояване () Методът е еквивалентен на метода = оператора, но се нуждае от итератора към вектора, който да се копира.



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; } 

Изход
2 4 1 5 3 

Използване на Vector Insert ()

The векторна вложка () Методът предоставя версия, която може да копира всички елементи от дадения диапазон. Това може да се използва за копиране на целия вектор на друг по подобен начин като метод на присвояване ().

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; } 

Изход
2 4 1 5 3 

Използване на вектор push_back ()

Натиснете всички елементи на първия вектор във втория вектор, като използвате вектор push_back () метод. Цикъл може да бъде повторен през първия вектор.

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; } 

Изход
2 4 1 5 3 

Този метод осигурява повече контрол, тъй като можем също да модифицираме елемента, ако е необходимо, преди да копираме.