Различити начини копирања вектора у Ц ++

Копирање вектора је процес креирања новог вектора који садржи исте елементе као оригинални вектор. У овом чланку ћемо научити различите начине за копирање вектора у Ц ++.

Најефикаснија и најлакша метода копирања вектора у Ц ++ је коришћењем Оператор задатка (=) .  Погледајмо пример:

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++
   #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  

Коришћење копирања ()

Тхе Копија () Функција је наша метода за копирање података у Ц ++. Може копирати један вектор у други коришћење њихових итерататора. Штавише цопи_иф () Варијанта ове функције може обављати и селективну копију на основу функције Унарне предиката.

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  

Објашњење: Морамо да користимо Бацк_Инертор () Функција ако нисмо навели величину вектора током декларације. Ако смо већ имали довољно простора, онда морамо проћи в2.бегин () уместо тога.

Коришћење векторског додељеног ()

Тхе векторски додељени () Метода је еквивалентна методи оператора, али му је потребна итератор вектору да се копира.

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  

Коришћење вектора пусх_бацк ()

Притисните све елементе првог вектора у други вектор користећи Вецтор Пусх_бацк () Метода. Петља може бити итерација кроз први вектор.

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  

Ова метода пружа више контроле јер такође можемо да изменимо елемент ако је потребно пре копирања.