כיצד ליצור מערך דינמי

תוכן עניינים:

כיצד ליצור מערך דינמי
כיצד ליצור מערך דינמי

וִידֵאוֹ: כיצד ליצור מערך דינמי

וִידֵאוֹ: כיצד ליצור מערך דינמי
וִידֵאוֹ: C+ POINTERS (2020) - How to create/change arrays at runtime? (Dynamic arrays) PROGRAMMING TUTORIAL 2024, מאי
Anonim

קבוצה בשם אלמנטים מאותו סוג נקראת מערך. לארגון נתונים כזה יש הרבה יתרונות ברורים וחסרון אחד - בעת יצירת מערך יש צורך להצהיר מראש על גודלו, שלא ניתן לשנותו באמצעים קונבנציונליים בעתיד. הפתרון לבעיה זו הוא פיתוח מערכים דינמיים שיכולים לשנות את מספר האלמנטים שלהם בכל עת. יתר על כן, לשם כך תוכלו להשתמש בשני השיעורים שכבר נוצרו, וליישם בעצמכם באמצעות כלי שפת תכנות רגילים.

כיצד ליצור מערך דינמי
כיצד ליצור מערך דינמי

הוראות

שלב 1

המהות העיקרית של מערך דינמי היא להקצות זיכרון לנתונים המאוחסנים בו בדיוק בגודל בו הוא נחוץ כרגע. הכי נוח ליישם קונסטרוקציה זו בצורה של מחלקה - עטיפה למערך. כאן יש צורך לספק את כל הפונקציות המבצעות הקצאה ושחרור זיכרון למערך, כמו גם אופרטורים המספקים גישה לאלמנטים שלו.

שלב 2

צור אובייקט ממעמד העטיפה של מערך דינמי, והבנאי יקצה זיכרון באופן אוטומטי בגודל שצוין. אם, כאשר המערך מתמלא, הזיכרון עבור האלמנטים יהיה תפוס לחלוטין, בעת הוספת הנתונים הבאים, מתבצעות הפעולות הבאות: - כל המידע מהמערך נשמר באחסון זמני (מערך עזר); - זיכרון שהוקצה בעבר הוא משוחרר על ידי פקודה מיוחדת (בחינם, מחק); - זיכרון מוקצה תחת מערך הגודל הנדרש להכיל את כל הנתונים - כל הערכים "הישנים" ממוקמים במערך החדש מהאחסון הזמני ומחדש חדש אלמנט נוסף.

שלב 3

הדרך הטובה ביותר לעבוד עם מערכים דינמיים היא להשתמש בשיעורי ספריה קיימים. אחת הדוגמאות הנפוצות ביותר היא מחלקת הווקטור. הוא כולל את כל הפונקציות והאיטרטורים הדרושים לתפקוד מערך משתנה. יתר על כן, מודול הספרייה המכיל מחלקה זו מסופק עם כל גרסה של מהדר C ++.

שלב 4

כלול את ספריית המערכים הדינמיים באמצעות הפקודה #include. השתמש בכיתה הווקטורית כדי ליצור אובייקט. המעבר במערך זהה למקרה הרגיל, תוך שימוש במדדים. התכונות המיוחדות כאן הן פונקציות להוספה והסרה של אלמנטים חדשים, כמו גם מספר שיטות עזר. דוגמא לקוד ליצירה והפעלה של וקטור מערך דינמי: וקטור # כולל; וקטור אינט מסה; // הכרזה על מערך דינמי עם אלמנטים מסוג intMas.push_back (10); // הוספת האלמנט הראשון - מספר 10 Mas.push_back (15); // הוספת האלמנט השני - מספר 15Mas [1] = 30; // האלמנט השני כתוב המספר 30Mas.pop_back (); // מחיקת האלמנט האחרון של המערך כאן, בעת יצירת מערך דינמי בשם Mass, יש לציין את סוג האלמנטים שלו (int), הממד לא מוגדר במקרה זה.

מוּמלָץ: