البرمجة

فك توابع إلى مراجع في C++

في C++، لا يوجد طريقة مباشرة لفك توابع (tuple) أو أزواج (pair) إلى مراجع (references) في سطر واحد بنفس طريقة دالة tie، لكن يمكنك استخدام البنية التحتية (std::tie) مع الدالة std::forward_as_tuple لتحقيق هذا الهدف. هذه الطريقة تتطلب كتابة أكثر قليلاً، لكنها تعمل بشكل جيد لتعيين المراجع بشكل متسلسل.

لنفترض أن لديك فهرسًا للأزواج في g، وتريد تفكيك العناصر إلى متغيرات x و y و z باستخدام مراجع. يمكنك القيام بذلك كما يلي:

cpp
#include #include #include int main() { std::vectorint, int, int>> g(100); // تحميل g بقيم مثالية g[19] = std::make_tuple(1, 2, 3); // فك التوابع إلى المراجع int& x = std::get<0>(g[19]); int& y = std::get<1>(g[19]); int& z = std::get<2>(g[19]); // استخدام المراجع std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl; return 0; }

إذا كنت تريد تجنب كتابة الأرقام الثابتة للعناصر، يمكنك استخدام std::tie مع std::forward_as_tuple بشكل مماثل لطريقة التفكيك التي تستخدمها مع tie:

cpp
#include #include #include int main() { std::vectorint, int, int>> g(100); // تحميل g بقيم مثالية g[19] = std::make_tuple(1, 2, 3); // فك التوابع إلى المراجع باستخدام std::tie و std::forward_as_tuple int x, y, z; std::tie(x, y, z) = std::forward_as_tuple(std::get<0>(g[19]), std::get<1>(g[19]), std::get<2>(g[19])); // استخدام المراجع std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl; return 0; }

هذا الحل يقدم راحة بسيطة في الكتابة ولكنه يتطلب تحديد نوع كل متغير يدويًا.

المزيد من المعلومات

في C++، يمكنك استخدام البنية التحتية (std::tie) بالاشتراك مع الدالة std::forward_as_tuple لفك توابع (tuples) إلى مراجع (references) في سطر واحد. هذا يسمح لك بإنشاء متغيرات مرجعية تشير إلى قيم داخل التوابع بطريقة نظيفة.

على سبيل المثال، لنفترض أن لديك قائمة من التوابع g وتريد فك توابع العناصر في الموقع 19 إلى متغيرات x و y و z باستخدام مراجع. يمكنك القيام بذلك كما يلي:

cpp
#include #include #include int main() { std::vectorint, int, int>> g(100); // تحميل g ببعض القيم g[19] = std::make_tuple(1, 2, 3); // فك توابع الموقع 19 إلى متغيرات x و y و z int x, y, z; std::tie(x, y, z) = g[19]; // استخدام المراجع std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl; return 0; }

هذا الكود يستخدم std::tie لإنشاء متغيرات مرجعية x و y و z تشير إلى قيم التوابع داخل g[19] بطريقة سهلة ونظيفة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر