زوج هو مصطلح يستخدم للجمع بين قيمتين، والتي قد تكون من أنواع بيانات مختلفة. زوج يقدم تقنية للاحتفاظ بشيئين متباينين معًا في التخزين. في الأساس، نستخدمها للتخزين الصفوف . الحاوية الزوجية عبارة عن حاوية مباشرة يتم تحديدها في الرأس وتحتوي على عنصرين أو كائنين من البيانات.
- تم إصلاح التسلسل، ويشار إلى العنصر الأول باسم 'أولاً' والثاني كما 'الثاني' (الأول، الثاني) .
- من الممكن تعيين ونسخ ومقارنة زوج. تكون مصفوفة الكائنات المخصصة في الخريطة أو خريطة التجزئة من النوع الافتراضي 'زوج' ، بمعنى أن جميع 'أولاً' المكونات هي مفاتيح مميزة متصلة بالكائنات 'ثانية'
- نحن نستخدم اسم المتغير، عامل النقطة، الكلمة الأولى أو الثانية ، و ال عنصر نريد الوصول.
بناء جملة الزوج في C++:
pair Pair_name
مثال:
برنامج للزوج في C++؛
#include #include using namespace std; int main() { pair PAIR1; PAIR1.first = 200; PAIR1.second = 'J'; cout << PAIR1.first << ' '; cout << PAIR1.second << endl; return 0; }
انتاج |
200 J
تهيئة الزوج:
يمكن أيضًا تهيئة الزوج. يمكنك استخدام بناء الجملة التالي لتهيئة الزوج.
بناء الجملة:
عدد الخلية
pair (data_type1, data_type2) Pair_name (value1, value2) ;
طرق مختلفة لتهيئة الزوج:
pair g1; pair g2(1, 'a'); pair g3(1, 10); pair g4(g3);
جعل وظيفة الزوج (). يمكن استخدامه أيضًا لتهيئة الزوج.
g2 = make_pair(1, 'a');
إعلان الزوج قد يستخدم أيضًا بناء الجملة التالي:
g2 = {1, 'a'};
مثال:
#include #include using namespace std; int main() { pair PAIR2('JavaTpoint', 2.23); cout << PAIR2.first << ' '; cout << PAIR2.second << endl; return 0; }
انتاج |
توسترينغ في جافا
JavaTpoint 2.23
ملاحظة: إذا لم تتم تهيئة القيمة الأولى للزوج، فسيتم تهيئتها تلقائيًا.
مثال:
#include #include using namespace std; int main() { pair PR1; pair PR2; cout << PR1.first; cout << PR1.second; cout << ' '; cout << PR2.first; cout << PR2.second; return 0; }
انتاج |
00
وظائف الأعضاء
1) make_pair():
بدون تحديد الأنواع بشكل صريح، يمكن إنشاء زوج قيمة باستخدام وظيفة القالب هذه.
بناء الجملة:
Pair_name = make_pair (value1,value2);
مثال:
#include #include using namespace std; int main() { pair PAIR1; pair PAIR2('JavaTpoint', 1.23); pair PAIR3; PAIR1.first = 200; PAIR1.second = 'J'; PAIR3 = make_pair('JavaTpoint is super', 4.56); cout << PAIR1.first << ' '; cout << PAIR1.second << endl; cout << PAIR2.first << ' '; cout << PAIR2.second << endl; cout << PAIR3.first << ' '; cout << PAIR3.second << endl; return 0; }
انتاج |
200 J JavaTpoint 1.23 JavaTpoint is super 4.56
2) المبادلة:
يتم تبديل محتويات كائنين مزدوجين باستخدام هذه الوظيفة. يجب أن تنتمي الأزواج إلى نفس الفئة.
بناء الجملة:
pair1.swap(pair2) ;
مثال:
خوارزمية فرز الإدراج
#include #include using namespace std; int main() { pair pair1 = make_pair('P', 1); pair pair2 = make_pair('Q', 2); cout << 'content before swapping: '; cout << 'Contents of pair1 = ' << pair1.first << ' ' << pair1.second; cout << 'Contents of pair2 = ' << pair2.first << ' ' << pair2.second; pair1.swap(pair2); cout << ' content after swapping: '; cout << 'Contents of pair1 = ' << pair1.first << ' ' << pair1.second; cout << 'Contents of pair2 = ' << pair2.first << ' ' << pair2.second; return 0; }
انتاج |
content before swapping: Contents of pair1 = P 1Contents of pair2 = Q 2 content after swapping: Contents of pair1 = Q 2Contents of pair2 = P 1
3) التعادل ():
تعمل طريقة التعادل () هذه بنفس طريقة عمل الصفوف. لتفكيك قيم الصف (أو الزوج في هذه الحالة) إلى متغيرات مستقلة، فإنه ينتج a مترابطة بيانية ل lvalue مؤشرات إلى معلماتها. فيما يلي نوعان مختلفان من ربطة العنق، أحدهما مع والآخر بدونه 'يتجاهل' ، تمامًا كما هو الحال في الصفوف. الكلمة الرئيسية 'يتجاهل' يمنع تفكيك عنصر صفي معين.
تحتوي الأزواج على وسيطتين فقط، لكن يمكن أن تحتوي الصفوف على العديد من الوسائط. ولذلك، يجب التعامل مع التفريغ بشكل صريح في حالة الأزواج.
بناء الجملة:
tie(int &, int &) = pair1;
مثال:
#include using namespace std; int main() { pair pair1 = { 10, 12 }; int p, q; tie(p, q) = pair1; cout << p << ' ' << q << ' '; pair pair2 = { 16, 18 }; tie(p, ignore) = pair2; cout << p << ' ' << q << ' '; pair <int, pair> pair3 = { 16, { 18, 'p' } }; int x, y; char z; x = pair3.first; tie(y, z) = pair3.second; cout << x << ' ' << y << ' ' << z << ' '; } </int,>
انتاج |
10 12 16 12 16 18 p