أدم محمد2 نشر 13 سبتمبر 2021 أرسل تقرير نشر 13 سبتمبر 2021 كيفية إرجاع مصفوفة من دالة ما في لغة c++ 2 اقتباس
0 شرف الدين حفني نشر 13 سبتمبر 2021 أرسل تقرير نشر 13 سبتمبر 2021 ﻻ يمكنك إرجاع مصفوفة بشكل مباشر في لغة c++ ولكن بدلاً من ذلك يمكنك إرجاع مؤشر pointer int* function(){} يمكنك في تلك الحالة أن تقوم بإرجاع مصفوفة دون مشاكل, حيث أن عﻻمة الأقواس [] تُترجم خلف الكواليس كمؤشر (pointer) فمثلاً int func(int arr[]){} مثلها مثل int func(int elm*){} اقتباس
1 Wael Aljamal نشر 13 سبتمبر 2021 أرسل تقرير نشر 13 سبتمبر 2021 في الإصدار الحديث من ++C من 11 وأحدث تم إضافة Array وأصبح يمكن تمرير وإرجاع المصفوفات مثل أي متغيرات أخرى.. وهي معرفة ضمن المكتبة القياسة std::array ويتم تضمينها من خلال الملف الرأسي: #include <array> ثم مثال للاستخدام: std::array<int, 3> a = {1, 2, 3}; // مصفوفة رقمية std::array<std::string, 2> s = { std::string("a"), "b" }; // مصفوفة محرفية دالة تعيد مصفوفة std::array #include <array> using namespace std; //تعريف دالة من نمط مصفوفة رقمية وبطول 10 array<int, 10> fill_arr(int arr[]) // دالة تقوم بنفس محتوى مصفوفة لأخرى { array<int, 10> arr2; // تعريف مصفوفة جديدة for(int i=0; i<10; ++i) { arr2[i]=arr[i]*2; // نسخ القيمع ضربها ب 2 } return arr2; // إعادة مصفوفة } في حال تعاملك مع مصفوفة عادية، عليك تمرير طولها (عدد عناصرها كوسيط ثاني لأي دالة، لأن تمرير المؤشر وحده لايكفي لتحديد من هم عناصر المصفوفة ) ولأن ليس لها رمز نهاية مثل المصفوفة المحرفية '0/' لطباعة مصفوفة: for(const auto& x: array) std::cout << x << ' '; لترتيب مصفوفة: // نستخدم مؤشر البداية والنهاية std::sort(a.begin(), a.end()); يوجد أيضا النمط std::vector يمكن استخدامه كمصفوفة: std::vector<int> fill_arr( std::vector<int> arr ) { // أي شيفرة تعدل المصفوفة الممررة return arr; } الفروقات: Array لها حجم ثابت (عدد عناصر) Vector مصفوفة ديناميكية أو ثايتة ويمكن إضافة عناصر لها وتغيير حجمها أو الحذف منها أيضا. الواجهة البرمجية ل Verctor هي list interface أي تعامل مثل قائمة أما Array تعامل مثل نمط بيانات primitive data type interface 1 اقتباس
السؤال
أدم محمد2
كيفية إرجاع مصفوفة من دالة ما في لغة c++
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.