logo

طرق مختلفة لنسخ ناقل في 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++ أيضًا المزيد من الطرق لنسخ ناقل إلى ناقل آخر. وهم على النحو التالي:

جدول المحتويات

باستخدام منشئ المتجهات

هناك طريقة أخرى سهلة لنسخ متجه في وقت الإعلان وهي تمرير المتجه الأصلي إلى مُنشئ النسخ لمُنشئ آخر ناقلات.



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++. يمكنه نسخ ناقل إلى آخر باستخدام التكرارات الخاصة به. علاوة على ذلك Copy_if() يمكن لمتغير هذه الوظيفة أيضًا إجراء نسخة انتقائية على أساس دالة أصلية أحادية.

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() بدلاً من.

باستخدام تعيين المتجهات ()

ال تعيين المتجهات () الطريقة تعادل طريقة المشغل = ولكنها تحتاج إلى نسخ المكرر إلى المتجه.



قائمة المصفوفات
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()

ادفع جميع عناصر المتجه الأول إلى المتجه الثاني باستخدام ناقلات 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 

توفر هذه الطريقة مزيدًا من التحكم حيث يمكننا أيضًا تعديل العنصر إذا لزم الأمر قبل النسخ.