在 C++ 中複製向量的辦法


有不同的方式在 C++ 中複製一個向量。

1) std::copy

std:: copy 是一個複製一個向量到另一個向量的內建內容。

語法

std::copy(first_iterator_o, last_iterator_o, back_inserter()):
first_iteratot_0 = First iterator of first vector.
last_iteratot_0 = Last iterator of first vector.
back_inserter() = To insert values from back.

演算法

Begin
   Declare v1 of vector type.
      Initialize some values into v1 vector in array pattern.
   Declare v2 of vector type.
   Call copy(v1.begin(), v1.end(), back_inserter(v2)) to copy all
   elements of v1 to v2.
   Print “v1 vector elements are :”.
   for (int i=0;i<1.size; i++)
      print the all element of v2 vector.
   Print “v2 vector elements are :”.
   for (int i=0;i<2.size; i++)
      print the all element of v2 vector.
End.

示例程式碼

 即時演示

#include<iostream>
#include<vector>
#include<algorithm> // for copy.
#include<iterator> // for back_inserter
using namespace std;
int main() {
   vector<int> v1{ 7, 6, 4, 5 };
   vector<int> v2;
   copy(v1.begin(), v1.end(), back_inserter(v2));
   cout << "v1 vector elements are : ";
   for (int i=0; i<v1.size(); i++)
      cout << v1[i] << " ";
      cout << endl;
      cout << "v2 vector elements are : ";
   for (int i=0; i<v2.size(); i++)
      cout << v2[i] << " ";
      cout<< endl;
   return 0;
}

輸出

v1 vector elements are : 7 6 4 5
v2 vector elements are : 7 6 4 5

2) 分配運算子

這也被用於從向量 1 到向量 2 複製值。

語法

std::assign(first_iterator_o, last_iterator_o):
first_iteratot_0 = First iterator of first vector.
last_iteratot_0 = Last iterator of first vector.

演算法

Begin
   Initialize a vector v1 with its elements.
   Declare another vector v2.
   Call assign() to copy the elements of v1 to v2.
   Print the elements of v1.
   Print the elements of v2.
End.

示例程式碼

 即時演示

#include<iostream> #include<vector> // for vector #include<iostream>
#include<vector>// for vector
#include<algorithm>// for copy() and assign()
#include<iterator>// for back_inserter
using namespace std;
int main() {
   vector<int> v1{7,6,4,5};
   vector<int> v2;
   v2.assign(v1.begin(), v1.end());
   cout << "v1 vector elements are : ";
   for (int i=0; i<v1.size(); i++)
      cout << v1[i] << " ";
      cout << endl;
      cout << "v2 vector elements are : ";
   for (int i=0; i<v2.size(); i++)
      cout << v2[i] << " ";
      cout<< endl;
   return 0;
}

輸出

v1 vector elements are : 7 6 4 5 v2 vector elements are : 7 6 4 5

3) 使用賦值“=”運算子

這是一種從向量 1 到向量 2 複製值的簡單方法。

演算法

Begin
   Initialize a vector v1 with its elements.
   Declare another vector v2.
   Call assignment operator “=” to copy the elements of v1 to v2.
   Print the elements of v1.
   Print the elements of v2.
End.

示例程式碼

 即時演示

#include<iostream>
#include<vector> // for vector
#include<algorithm>// for copy() and assign()
#include<iterator>// for back_inserter
using namespace std;
int main() {
   vector<int> v1{7,6,4,5};
   vector<int> v2;
   v2 = v1 ;
   cout << "v1 vector elements are : ";
   for (int i=0; i<v1.size(); i++)
      cout << v1[i] << " ";
      cout << endl;
      cout << "v2 vector elements are : ";
   for (int i=0; i<v2.size(); i++)
      cout << v2[i] << " ";
      cout<< endl;
   return 0;
}

輸出

v1 vector elements are : 7 6 4 5
v2 vector elements are : 7 6 4 5

4) 使用 push_back 方法

演算法

Begin
   Initialize a vector v1 with its elements.
   Declare another vector v2.
   Make a for loop to copy elements of first vector into second vector by Iterative method using push_back().
   Print the elements of v1.
   Print the elements of v2.
End.

示例程式碼

 即時演示

#include<iostream> #include<vector> // for vector
#include<iostream>
#include<vector>// for vector
#include<algorithm>// for copy() and assign()
#include<iterator>// for back_inserter
using namespace std;
int main() {
   vector<int> v1{7,6,4,5};
   vector<int> v2;
   for (int i=0; i<v1.size(); i++)
      v2.push_back(v1[i]);
      cout << "v1 vector elements are : ";
   for (int i=0; i<v1.size(); i++)
      cout << v1[i] << " ";
      cout << endl;
      cout << "v2 vector elements are : ";
   for (int i=0; i<v2.size(); i++)
      cout << v2[i] << " ";
      cout<< endl;
   return 0;
}

輸出

v1 vector elements are : 7 6 4 5
v2 vector elements are : 7 6 4 5

5) 透過作為建構函式傳遞向量

演算法

Begin
   Initialize a vector v1 with its elements.
   Declare another vector v2 and copying elements of first vector to second vector using constructor method and they are deeply copied.
   Print the elements of v1.
   Print the elements of v2.
End.

示例程式碼

 即時演示

#include<iostream>
#include<vector>// for vector
#include<algorithm>// for copy() and assign()
#include<iterator>// for back_inserter
using namespace std;
int main() {
   vector<int> v1{7,6,4,5};
   vector<int> v2(v1);
   cout << "v1 vector elements are : ";
   for (int i=0; i<v1.size(); i++)
      cout << v1[i] << " ";
      cout << endl;
      cout << "v2 vector elements are : ";
   for (int i=0; i<v2.size(); i++)
      cout << v2[i] << " ";
      cout<< endl;
   return 0;
}

輸出

v1 vector elements are : 7 6 4 5
v2 vector elements are : 7 6 4 5

更新於: 30-7-2019

11K+ 瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

入門
廣告