C++الكلاس array
- تعريف الكلاس array
- دوال الكلاس array
- أمثلة شاملة حول التعامل مع الكلاس array
تعريف الكلاس array
تم إضافة هذا الكلاس إبتداءاً من الإصدر c++11
و هو يستخدم لإنشاء كائن يمثل مصفوفة متطورة مقارنةً بالمصفوفة العادية حيث أن التعامل معها مرن أكثر لأنك تستطيع معرفة عدد عناصرها و الحصول على قيمة أول و آخر عنصر فيها بكل سهولة.
بعد أن يتم تحديد عدد العناصر التي يمكن إضافتها فيه, لا يمكن تغييره كما هو الحال في المصفوفات العادية.
لاستخدام الكلاس array يجب تضمين الملف #include<array> لأنه موجود فيه.
بناء الكلاس
إذاً عند إنشاء كائن من الكلاس array يجب أن نمرر له نوع البيانات الذي نريد تخزينه فيه مكان الباراميتر T
و عدد العناصر الأقصى الذي قد نحتاج تخزينه فيه مكان الباراميتر .N
دوال الكلاس array
الجدول التالي يحتوي على دوال الكلاس array الأكثر إستخداماً.
الدالة مع تعريفها | |
---|---|
1 | T at(size_t n)
ترجع العنصر الموجود على الـ index الذي نمرره لها مكان الباراميتر n عند استدعائها.ترمي الإستثناء out_of_range في حال كان الـ index المحدد فيها أصغر من 0 أو أكبر من عدد العناصر الموجودة.معلومة: يمكنك استخدام العامل [] للوصول للعنصر و لكن عليك معرفة أن استخدام هذا العامل لا يرمي إستثناء في حال تمرير index غير موجود في الكائن. |
2 | bool empty()
تستخدم لمعرفة ما إن كان الكائن الذي قام باستدعائها فارغاً أم لا. ترجع false في حال كان يوجد فيه عنصر أو أكثر, و ترجع true إن لم يكن كذلك. |
3 | T front()
ترجع قيمة أول عنصر موجود في الكائن الذي قام باستدعائها. قد تسبب مشكلة في حال كان الكائن لا يملك أي عنصر, لذلك يفضل التأكد من أن الكائن غير فارغ باستخدام الدالة empty() قبل استخدامها. |
4 | T back()
ترجع قيمة آخر عنصر موجود في الكائن الذي قام باستدعائها. قد تسبب مشكلة في حال كان الكائن لا يملك أي عنصر, لذلك يفضل التأكد من أن الكائن غير فارغ باستخدام الدالة empty() قبل استخدامها. |
5 | void fill(T val)
تستخدم لإعطاء قيمة لكل عنصر موجود الكائن الذي قام باستدعائها. مكان الباراميتر val يجب أن تمرر قيمة من نفس نوع البيانات التي يمكن للكائن في الأساس أن يخزّنها. |
6 | size_t size()
تستخدم للحصول على عدد عناصر الكائن الذي قام باستدعائها. القيمة التي ترجعها هي نفسها القيمة التي نمررها مكان الباراميتر الثاني الذي نمرره عند إنشاء الكائن و الذي يمثل عدد عناصره. معلومة: الفرق بين الدالة size() و العامل sizeof هو أن هذا الأخير يرجع حجم العناصر في الذاكرة بالوحدة Byte و ليس عددها. |
7 | void swap(array& anotherArray)
تستخدم لتبديل قيم عناصر الكائن الذي قام باستدعائها بقيم عناصر الكائن الذي نمرره لها. مكان الباراميتر anotherArray نمرر لها كائن من الكلاس array يملك نفس نوع و عدد عناصر الكائن الذي قام باستدعاء. |
أمثلة شاملة حول التعامل مع الكلاس array
في كل مثال موضوع قمنا باستخدام دوال جديدة حتى تعرف كيف تستخدم جميع الدوال التي ذكرناها في الجدول.
في المثال التالي قمنا بتعريف كائن من array مع تحديد أنه يمكن أن يحتوي على 5 عناصر نوعها int.
بعدها قمنا بوضع 0
كقيمة أولية لجميع عناصره و ثم عرض جميع قيمه باستخدام حلقة.
ملاحظة: قمنا باستخدام العامل []
للوصول إلى العناصر و الدالة size() لمعرفة حجم المصفوفة.
المثال الأول
سنحصل على النتيجة التالية عند التشغيل.
Array values = 5 0 7 0 9
في المثال التالي قمنا بتعريف كائن من array أدخلنا فيه 5 عناصر نصية.
بعدها قمنا بطباعة عدد عناصره و أول و آخر قيمة فيه.
ملاحظة: قمنا باستخدام الدالة empty() لمعرفة ما إن كانت المصفوفة فارغة أم لا, الدالة front() للحصول على قيمة أول عنصر و الدالة back() للحصول على قيمة آخر عنصر.
المثال الثاني
سنحصل على النتيجة التالية عند التشغيل.
Array size = 5 Array first element value = One Array last element value = Five
في المثال التالي قمنا بتعريف كائنين من array في كل منهما 4 عناصر من النوع نوعها int.
بعدها قمنا بتبديل عناصرهما و من ثم طباعة القيم التي أصبحت موجودة في كلٍّ منهما.
ملاحظة: قمنا باستخدام الدالة swap() لتبديل قيمهما و الدالة at() للوصول لقيم العناصر الموجودة فيهما.
المثال الثالث
سنحصل على النتيجة التالية عند التشغيل.
arr1 values = 5 6 7 8 arr2 values = 1 2 3 4