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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 Taha Khalid نشر 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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Mohamed Ahmed181 نشر 14 فبراير الكاتب أرسل تقرير مشاركة نشر 14 فبراير (معدل) في الحلين بيجيلي كده برضه الفكرة اني عارف ان الاكواد دي شغالة ولما بجربها علي online compiler بتشتغل عادي بس معرفش بتقف عندي ليه تم التعديل في 14 فبراير بواسطة Mohamed Ahmed181 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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; } اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Mohamed Ahmed181
بتجيبلي 'size' was not declared in this scope
رابط هذا التعليق
شارك على الشبكات الإجتماعية
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.