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

Ще одним простим способом скопіювати вектор під час декларації є передача оригінального вектора до конструктора копіювання іншого вектор.



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 () Функція-це наш метод переходу до копіювання даних у C ++. Він може скопіювати один вектор в інший, використовуючи їх ітератори. Більше того copy_if () Варіант цієї функції також може виконувати вибіркову копію на основі функції Unary Predicate.

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 taint ()

З Векторне призначення () Метод еквівалентний методу = оператора, але він потребує ітератора для вектора для копіювання.



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 

Використання вектора вставки ()

З Векторна вектор () Метод пропонує версію, яка може скопіювати всі елементи із заданого діапазону. Це може бути використане для копіювання всього вектора в інший аналогічним способом, як метод призначення ().

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 

Використання Vector push_back ()

Натисніть на всі елементи першого вектора у другий вектор, використовуючи vector 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 

Цей метод забезпечує більше контролю, оскільки ми також можемо змінити елемент, якщо це потрібно, перед копіюванням.