الصف هو كائن يمكنه الاحتفاظ بعدد من العناصر. يمكن أن تكون العناصر من أنواع بيانات مختلفة. تتم تهيئة عناصر الصفوف كوسائط بالترتيب الذي سيتم الوصول إليها من خلاله. Tuples عبارة عن بنية بيانات متعددة الاستخدامات لتجميع القيم. لفهم كيفية استخدام الصفوف في C++ وتطبيقاتها دورة لغة سي++ يوفر دروسا وأمثلة شاملة.
العمليات على Tuple
1. احصل على (): يتم استخدام get() للوصول إلى قيم الصف وتعديلها، فهو يقبل الفهرس واسم الصف كوسائط للوصول إلى عنصر صف معين.
2.make_tuple(): يتم استخدام make_tuple() لتعيين مجموعة من القيم. يجب أن تكون القيم التي تم تمريرها بالترتيب مع القيم المعلنة في صف.
CPP#include #include using namespace std; int main() { // Declaring tuple tuple<char int float> geek; // Assigning values to tuple using make_tuple() geek = make_tuple('a' 10 15.5); // Printing initial tuple values using get() cout << 'The initial values of tuple are: '; cout << get<0>(geek) << ' ' << get<1>(geek); cout << ' ' << get<2>(geek) << endl; // Use of get() to change values of tuple get<0>(geek) = 'b'; get<2>(geek) = 20.5; // Printing modified tuple values cout << 'The modified values of tuple are: '; cout << get<0>(geek) << ' ' << get<1>(geek); cout << ' ' << get<2>(geek) << endl; return 0; }
الإخراج
The initial values of tuple are: a 10 15.5 The modified values of tuple are: b 10 20.5
توضيح : في الكود أعلاه، يقوم get() بتعديل القيمة الأولى والثالثة للصف.
3. حجم الصف: تقوم بإرجاع عدد العناصر الموجودة في المجموعة.
CPP
#include #include using namespace std; int main() { // Initializing tuple tuple<char int float> geek(20 'g' 17.5); // Use of size to find tuple_size of tuple cout << 'The size of tuple is: '; cout << tuple_size<decltype(geek)>::value; return 0; }
الإخراج
The size of tuple is: 3
4. مبادلة (): يقوم المبادلة () بتبديل عناصر الصفين المختلفين.
CPP#include #include using namespace std; int main() { // Initializing 1st tuple tuple<int char float> tup1(20 'g' 17.5); // Initializing 2nd tuple tuple<int char float> tup2(10 'f' 15.5); // Printing 1st and 2nd tuple before swapping cout << 'The first tuple elements before swapping are: '; cout << get<0>(tup1) << ' ' << get<1>(tup1) << ' ' << get<2>(tup1) << endl; cout << 'The second tuple elements before swapping are: '; cout << get<0>(tup2) << ' ' << get<1>(tup2) << ' ' << get<2>(tup2) << endl; // Swapping tup1 values with tup2 tup1.swap(tup2); // Printing 1st and 2nd tuple after swapping cout << 'The first tuple elements after swapping are: '; cout << get<0>(tup1) << ' ' << get<1>(tup1) << ' ' << get<2>(tup1) << endl; cout << 'The second tuple elements after swapping are: '; cout << get<0>(tup2) << ' ' << get<1>(tup2) << ' ' << get<2>(tup2) << endl; return 0; }
الإخراج
The first tuple elements before swapping are: 20 g 17.5
The second tuple elements before swapping are: 10 f 15.5
The first tuple elements after swapping are: 10 f 15.5
The second tuple elements after swapping are: 20 g 17.5
5. التعادل () : عمل Tie () هو فك قيم المجموعة إلى متغيرات منفصلة. هناك نوعان مختلفان من التعادل () مع وبدون "تجاهل" يتجاهل "تجاهل" عنصر صف معين ويمنعه من التفكيك.
CPP
#include #include // for tie() and tuple using namespace std; int main() { // Initializing variables for unpacking int i_val; char ch_val; float f_val; // Initializing tuple tuple<int char float> tup1(20 'g' 17.5); // Use of tie() without ignore tie(i_val ch_val f_val) = tup1; // Displaying unpacked tuple elements without ignore cout << 'The unpacked tuple values (without ignore) are: '; cout << i_val << ' ' << ch_val << ' ' << f_val; cout << endl; // Use of tie() with ignore // ignores char value tie(i_val ignore f_val) = tup1; // Displaying unpacked tuple elements with ignore cout << 'The unpacked tuple values (with ignore) are: '; cout << i_val << ' ' << f_val; cout << endl; return 0; }
الإخراج
The unpacked tuple values (without ignore) are: 20 g 17.5 The unpacked tuple values (with ignore) are: 20 17.5
6.tuple_cat(): تقوم هذه الدالة بربط صفين وإرجاع صف جديد.
CPP#include #include // for tuple_cat() and tuple using namespace std; int main() { // Initializing 1st tuple tuple<int char float> tup1(20 'g' 17.5); // Initializing 2nd tuple tuple<int char float> tup2(30 'f' 10.5); // Concatenating 2 tuples to return a new tuple auto tup3 = tuple_cat(tup1 tup2); // Displaying new tuple elements cout << 'The new tuple elements in order are: '; cout << get<0>(tup3) << ' ' << get<1>(tup3) << ' ' << get<2>(tup3) << ' ' << get<3>(tup3) << ' ' << get<4>(tup3) << ' ' << get<5>(tup3) << endl; return 0; }
الإخراج
The new tuple elements in order are: 20 g 17.5 30 f 10.5