تسمى مجموعة العناصر المسماة من نفس النوع مصفوفة. يتمتع تنظيم البيانات هذا بالكثير من المزايا الواضحة وعيوبًا واحدًا - عند إنشاء مصفوفة ، من الضروري الإعلان عن حجمها مسبقًا ، والذي لا يمكن تغييره بالوسائل التقليدية في المستقبل. يكمن حل هذه المشكلة في تطوير مصفوفات ديناميكية يمكنها تغيير عدد عناصرها في أي وقت. علاوة على ذلك ، لهذا ، يمكنك استخدام كل من الفصول التي تم إنشاؤها بالفعل ، وتنفيذ الفصول الخاصة بك باستخدام أدوات لغة البرمجة القياسية.
تعليمات
الخطوة 1
يتمثل الجوهر الرئيسي للمصفوفة الديناميكية في تخصيص ذاكرة للبيانات المخزنة فيها بالحجم المطلوب بالضبط في الوقت الحالي. من الأنسب تنفيذ هذا البناء في شكل فئة - غلاف لمصفوفة. من الضروري هنا توفير جميع الوظائف التي تقوم بتخصيص وإصدار الذاكرة لمصفوفة ، بالإضافة إلى العوامل التي توفر الوصول إلى عناصرها.
الخطوة 2
قم بإنشاء كائن من فئة غلاف الصفيف الديناميكي ، وسيقوم المُنشئ تلقائيًا بتخصيص ذاكرة بالحجم المحدد. إذا كانت المصفوفة ممتلئة ، فإن ذاكرة العناصر ستكون مشغولة بالكامل ، عند إضافة البيانات التالية ، يتم تنفيذ الإجراءات التالية: - يتم تخزين جميع المعلومات من المصفوفة في التخزين المؤقت (المصفوفة المساعدة) ؛ - الذاكرة المخصصة مسبقًا هي تم تحريرها بواسطة أمر خاص (مجاني ، حذف) ؛ - يتم تخصيص الذاكرة ضمن مصفوفة بالحجم المطلوب لاحتواء جميع البيانات - يتم وضع جميع القيم "القديمة" في المصفوفة الجديدة من التخزين المؤقت وجديد تمت إضافة العنصر.
الخطوه 3
أفضل طريقة للعمل مع المصفوفات الديناميكية هي استخدام فئات المكتبة الموجودة. أحد الأمثلة الأكثر شيوعًا هو فئة المتجه. يتضمن جميع الوظائف والمكررات اللازمة لعمل مصفوفة قابلة للتغيير. علاوة على ذلك ، يتم تزويد وحدة المكتبة التي تحتوي على هذه الفئة بأي إصدار من مترجم C ++.
الخطوة 4
قم بتضمين مكتبة الصفيف الديناميكية باستخدام الأمر #include. استخدم فئة المتجه لإنشاء كائن. التنقل عبر المصفوفة هو نفسه كما في الحالة المعتادة ، باستخدام المؤشرات. الميزات الخاصة هنا هي وظائف لإضافة وإزالة عناصر جديدة ، بالإضافة إلى عدد من الطرق المساعدة.مثال على رمز لإنشاء وتشغيل متجه صفيف ديناميكي: #include vector؛ vector int Mass؛ // إعلان مصفوفة ديناميكية بعناصر من النوع intMas.push_back (10) ؛ // إضافة العنصر الأول - رقم 10 Mas.push_back (15) ؛ // إضافة العنصر الثاني - رقم 15Mas [1] = 30 ؛ // يتم كتابة العنصر الثاني بالرقم 30Mas.pop_back () ؛ // حذف العنصر الأخير من المصفوفة هنا ، عند إنشاء مصفوفة ديناميكية باسم Mass ، يجب تحديد نوع عناصرها (int) ، والبعد غير محدد في هذه الحالة.