اذهب إلى المحتوى
  • 1

ال size() function مش بتشتغل معايا 

Mohamed Ahmed181

السؤال

Recommended Posts

  • 1

لأن دالة 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

يمكنك استخدام  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;
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

المشكلة في ال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;
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

 الخطا  أنك تستخدم 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;
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

في الحلين بيجيلي كده برضه

الفكرة اني عارف ان الاكواد دي شغالة ولما بجربها علي online compiler بتشتغل عادي بس معرفش بتقف عندي ليهScreenshot(9).thumb.jpg.8ffcbf5a5043cc37cc505a5dde0cbcff.jpg

تم التعديل في بواسطة Mohamed Ahmed181
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...