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