Mohamed Ahmed181 نشر 14 فبراير أرسل تقرير نشر 14 فبراير #include <iostream> using namespace std; int main() { int numbers[] = { 10, 20, 3, 30, 5, 7, 40 }; int numssize = size(numbers); cout << numssize; return 0; } بتجيبلي 'size' was not declared in this scope 2 اقتباس
1 Mustafa Suleiman نشر 14 فبراير أرسل تقرير نشر 14 فبراير لأن دالة size() التي تستخدمها غير متوفرة في مكتبة C++ القياسية، وهناك وظائف مختلفة تسمى size() تعمل مع هياكل بيانات مختلفة، لكن تلك التي تستخدمها قد تكون خاصة بمكتبة معينة أو قد تكون وظيفة مخصصة لم تحددها. استخدام عامل sizeof() (للمصفوفات على غرار C) مثل numbers في الكود لديك، للحصول على عدد العناصر، ومع ذلك، لاحظ أن ذلك يرجع الحجم الكلي للمصفوفة بالبايتات، وليس عدد العناصر: #include <iostream> using namespace std; int main() { int numbers[] = {10, 20, 3, 30, 5, 7, 40}; int numssize = sizeof(numbers) / sizeof(numbers[0]); cout << numssize << endl; // Output: 7 return 0; } وإن كنت تستخدم عناصر من مكتبة Standard Template Library (STL) ، مثل المتجهات أو المصفوفات أو السلاسل، فتستطيع الإعتماد على دالة std::size(): #include <iostream> #include <vector> using namespace std; int main() { vector<int> numbers = {10, 20, 3, 30, 5, 7, 40}; int numssize = std::size(numbers); cout << numssize << endl; // Output: 7 return 0; } ولو لديك وظيفة مخصصة أو مكتبة تحدد دالة size() خصيصًا لحالة استخدامك، فتحتاج إلى التأكد من أن الوظيفة مرئية في نطاق وظيفتك main()، وتحقق من مكان تعريف الوظيفة وتضمين الرؤوس أو الملفات الضرورية لإحضارها إلى النطاق. 1 اقتباس
1 Taha Khaled2 نشر 14 فبراير أرسل تقرير نشر 14 فبراير يمكنك استخدام sizeof بدالا من size لكي يصبح الكود بهذه الطريقه #include <iostream> using namespace std; int main() { int numbers[] = {10, 20, 3, 30, 5, 7, 40}; int numssize = sizeof(numbers) / sizeof(numbers[0]); cout << "Array size: " << numssize << endl; return 0; } 1 1 اقتباس
0 Chihab Hedidi نشر 14 فبراير أرسل تقرير نشر 14 فبراير المشكلة في الcompiler الذي تستخدمه، فبعضه يكون يحتوي عليها مباشرة و البعض الأخر لا، جربت الكود و إشتغل عندي بدون مشاكل، من أجل حل المشكلة المكتبة iterator تحتوي على الدالة نفسها، يمكنك تغيير الكود بالشكل التالي ليشتغل معك بدون مشاكل: #include <iostream> #include <iterator> using namespace std; int main() { int numbers[] = { 10, 20, 3, 30, 5, 7, 40 }; int numssize = std::size(numbers); cout << numssize; return 0; } 1 اقتباس
0 Mahmoud Hassan19 نشر 14 فبراير أرسل تقرير نشر 14 فبراير الخطا أنك تستخدم size دون استخدام الفضاء الخاص بها std. لتصحيح ذلك، يجب عليك إم استخدام std::size بدلاً من size. #include <iostream> using namespace std; int main() { int numbers[] = { 10, 20, 3, 30, 5, 7, 40 }; int numssize = std::size(numbers); // استخدام std::size بدلاً من size cout << numssize; return 0; } 1 اقتباس
0 Mohamed Ahmed181 نشر 14 فبراير الكاتب أرسل تقرير نشر 14 فبراير (معدل) في الحلين بيجيلي كده برضه الفكرة اني عارف ان الاكواد دي شغالة ولما بجربها علي online compiler بتشتغل عادي بس معرفش بتقف عندي ليه تم التعديل في 14 فبراير بواسطة Mohamed Ahmed181 اقتباس
0 Mahmoud Hassan19 نشر 16 فبراير أرسل تقرير نشر 16 فبراير ممكن تستخدم #include <iterator> #include <iostream> #include <iterator> int main() { int numbers[] = {1, 2, 3, 4, 5}; int numssize = std::size(numbers); std::cout << "Size of numbers array: " << numssize << std::endl; return 0; } اقتباس
السؤال
Mohamed Ahmed181
بتجيبلي 'size' was not declared in this scope
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.