Різні способи скопіювати вектор у 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  

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