البرمجة

فك توابع إلى مراجع في 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] بطريقة سهلة ونظيفة.

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