Копіювання вектора - це процес створення нового вектора, який містить однакові елементи, що і оригінальний вектор. У цій статті ми вивчимо різні способи копіювання вектора в 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
- Використання копії ()
- Використання vector taint ()
- Використання вектора вставки ()
- Використання Vector push_back ()
Використання конструктора 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
Цей метод забезпечує більше контролю, оскільки ми також можемо змінити елемент, якщо це потрібно, перед копіюванням.