ابحث عن حجم المصفوفة C ++

Find Array Size C



المصفوفة عبارة عن حاوية بها عناصر من نفس نوع البيانات. إذا لم نعرف الحجم الفعلي للمصفوفة ، فيمكن تحديده بطرق مختلفة. عندما نتحدث عن حجم المصفوفة ، فإننا في الواقع نتحدث عن عدد العناصر الموجودة في المصفوفة. في بعض الأحيان ، نحدد حجم المصفوفة ، وأحيانًا تُترك الأقواس فارغة. هذا حجم ظاهر يظهر فقط قدرة المصفوفة على تخزين القيمة فيه. على سبيل المثال ، ضع في اعتبارك إعلان مصفوفة عينة

مجموعة Int[] = {1و2و3و4و5و6}

هنا حجم المصفوفة أو طول المصفوفة هو 6. ولا يظهر الحجم الإجمالي للمصفوفة التي سيتم تخصيصها. يتم الحصول على الحجم الفعلي من خلال تطبيق عمليات مختلفة. يتم استخدام هذه العمليات في هذه المقالة للحصول على حجم المصفوفة.







مثال 1

في هذا الرسم التوضيحي ، سنستخدم مفهوم البدء () والنهاية (). من خلال هذه الطريقة ، يمكن معرفة حجم المصفوفة بسهولة. هذه مكتبتان معروفتان بالمكتبات القياسية. هاتان الوظيفتان تعيدان التكرارات التي تعرض النقاط الأولية والنهاية للمصفوفة. بدءًا من الرأس ، نستخدم مكتبة مصفوفة. سيشمل هذا جميع الوظائف المتعلقة بالمصفوفة. في الوظيفة الرئيسية ، بدأنا مصفوفة تحتوي على قيم عددية.



كلفة<<……….<<نهاية(إلى)-Begib(إلى)<<

هنا لم نذكر حجم المصفوفة. في بيان العرض الذي يلي cout ، نستخدم الدالتين end () و begin (). سيظهر لنا الاختلاف بين هاتين الوظيفتين حجم المصفوفة. في معلمات هذه الوظائف ، مررنا المصفوفة. من خلال القيام بذلك ، سيتم تحديد الحجم الفعلي. يتم عرض القيمة الناتجة من هذه الوظائف مباشرة.







نتحرك الآن نحو الإخراج. من المفترض أن ننفذ هذه البرامج في Linux ، لذلك نحتاج إلى مشاركة Ubuntu Terminal. نظرًا لأننا نستخدم كود C ++ ، فنحن بحاجة إلى تجميع الكود من خلال المترجم. هذا هو مترجم G ++. بعد تجميع الكود ، سنقوم بتنفيذه. توضح الأوامر أدناه طريقة الإخراج التي استخدمناها.

ز دولار++ -س code2 code2.ج

$./كود 2



يمكنك الآن رؤية الإخراج. مثال آخر مشابه في حالة الأمراض المنقولة جنسياً هو دالة المسافة. في هذه المسافة يتم حسابها باستخدام وظائف start () و end (). يتم إكمال ذلك باستخدام هذه الوظائف مع الأمراض المنقولة جنسياً.

كثافة العمليات=ساعات:: مسافه: بعد(ساعات::يبدأ(arr)وساعات::نهاية(arr))؛

يتم الحصول على الإخراج في بيان cout. لمشاهدة السجل ، استخدم المترجم مرة أخرى لتنفيذ التعليمات البرمجية.

هنا يمكنك أن ترى أنه تم الحصول على الناتج المطلوب.

مثال 2

يتعلق هذا المثال باستخدام الدالة sizeof () في كود C ++ ، حيث تُرجع هذه القيمة الحجم الفعلي للبيانات في شكل بايت. علاوة على ذلك ، فإنه يتعامل أيضًا مع إرجاع عدد البايتات المستخدمة لتخزين مصفوفة. بعبارة أخرى ، في هذا المثال ، الخطوة الأولى هي تهيئة مصفوفة دون الإعلان عن حجم المصفوفة. الصيغة المستخدمة لوظيفة sizeof () هي:

كثافة العمليات= حجم(arr)/حجم(arr[0])؛

أين آر هي المصفوفة. يظهر arr [0] فهرس العناصر في المصفوفة.

إذن ، تشير هذه العبارة إلى أن حجم المصفوفة مقسومًا على حجم جميع العناصر الموجودة ، واحدًا تلو الآخر. هذا يساعد في حساب الطول. لقد استخدمنا متغير عدد صحيح لتلقي وتخزين القيمة المعادة من الدالة.

سنحصل على الإخراج هنا من موجه الأوامر بنفس طريقة تنفيذ الترجمة.

يُظهر الإخراج حجم المصفوفة ، مما يعني أن عدد العناصر الموجودة فيه ، وهو 6.

مثال 3

يتضمن هذا المثال استخدام دالة size (). يتم وضع هذه الوظيفة في المكتبة القياسية ، STL. الخطوة الأولى في البرنامج الرئيسي هي التصريح عن المصفوفة. هنا يحتوي اسم المصفوفة أيضًا على الحجم والقيمة الصحيحة. تقوم هذه الطريقة أيضًا بإرجاع النتيجة مباشرة في بيان الإخراج.

كلفة<<….<<arr.بحجم()<<

حيث 'arr' هي المصفوفة ، لجلب النتيجة أو الوصول إلى الوظيفة ، نحتاج إلى اسم المصفوفة مع وظيفة الحجم.

لعرض النتيجة ، نستخدم مترجم g ++ لترجمة وتنفيذ النتيجة.

من الإخراج ، يمكنك أن ترى أن النتيجة هي النتيجة التي نريدها والتي تعرض الحجم الفعلي للمصفوفة.

مثال 4

يمكن أيضًا الحصول على حجم المصفوفة باستخدام المؤشرات حيث تقوم المؤشرات بتخزين عنوان / موقع قيمة المتغير. الآن انظر أدناه على سبيل المثال.

الخطوة الأولى هي تهيئة المصفوفة كالمعتاد. ثم يعمل المؤشر مع حجم الصفيف.

كثافة العمليات لين= *(&مجموعة مصفوفة+ 1)- مجموعة مصفوفة؛

هذا هو البيان الأساسي الذي يعمل كمؤشر. * يُستخدم لتحديد موضع أي عنصر في المصفوفة ، بينما يتم استخدام العامل & للحصول على قيمة الموقع التي تم الحصول عليها من خلال المؤشر. هذه هي الطريقة التي نحصل بها على حجم الصفيف من المؤشرات. يتم عرض النتيجة من خلال المحطة. والجواب هو نفسه. حيث تم ذكر حجم المصفوفة المذكورة على أنه 13.

مثال 5

في هذا المثال ، استخدمنا فكرة خصم وسيطة القالب. وسيطة القالب هي معلمة من نوع خاص. يتم استخدامه لتمرير وسيطة من أي نوع ، تمامًا مثل الوظائف العادية التي يمكن تمريرها كوسيطة.

عندما يتم تمرير مصفوفة كمعامل ، يتم تحويلها إلى مؤشر لإظهار العنوان. للحصول على طول المصفوفة المحددة ، نستخدم طريقة خصم وسيطة القالب هذه. الأمراض المنقولة جنسيا هي شكل قصير من المعايير.

بالنظر إلى المثال المعطى ، قدمنا ​​فئة قالب تستخدم للحصول على حجم المصفوفة. إنها فئة مضمنة افتراضية تحتوي على جميع وظائف وسيطات القالب.

Constexpr std: : size_tبحجم(مقدار ثابتتي(&مجموعة مصفوفة)[ن])لا باستثناء{

إرجاعن؛

}

هذا خط ثابت في هذا المفهوم. يتم الحصول على الإخراج مباشرة في بيان cout.

من الإخراج ، يمكنك أن ترى أننا حصلنا على المخرجات المطلوبة: حجم المصفوفة.

مثال 6

نستخدم std :: vector للحصول على حجم المصفوفة في البرنامج. هذا نوع من الحاوية ؛ وتتمثل مهمتها في تخزين المصفوفات الديناميكية. يعمل بطرق مختلفة لعمليات مختلفة. لإنجاز هذا المثال ، استخدمنا مكتبة متجه تتضمن جميع وظائف المتجهات فيها. كما يعلن عن عبارات cin و cout و endl و vector لاستخدامها في البرنامج. يتم تشغيل المصفوفة أولاً في البرنامج. يتم عرض الإخراج في بيان cout حسب حجم المتجه.

كلفة<<حجم ناقلات: <<int_array.بحجم() <<endl؛

الآن سنرى الإخراج من محطة Ubuntu. حجم المصفوفة دقيق للعناصر الموجودة فيه.

استنتاج

في هذا البرنامج التعليمي ، استخدمنا طريقة مختلفة للحصول على طول أو حجم المصفوفة. بعضها عبارة عن وظائف مدمجة ، بينما يتم استخدام البعض الآخر يدويًا.