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