אישה אישה 26
New member
שאלה ב- ++C
בנושא הקצאות דינמיות וסטטיות: בתכנית שכתבתי, אני אמורה להחזיק המון טבלאות נתונים (בזיכרון) לצרוך חישובים. הטבלה מוגדרת כוקטור של פוינטרים למבנה מסוים, שהוא מחלקה אבסטרקטית. נקרא לה A. B ו- C הן 2 מחלקות היורשות מ- A, כך שבפועל הפונקציה בונה טבלה שהיא וקטור של B-ים או וקטור של C-ים. כרגע ההקצאה היא דינמית והיא מבוצעת בנפרד עבור כל שורה בטבלה. הבעיה היא שבגלל גודל הטבלאות ומספרן, ההקצאה הדינמית המפוצלת מאוד מאטה את התכנית וגורמת לה להיות לא יעילה. כיצד אני יכולה לייעל את התכנית? האם ניתן להקצות את כל הטבלה בבת אחת? (אני יודעת מה הגודל המקסימלי שלה) הרי גם אם אני מקצה את הוקטור של הפוינטרים מראש, את השורות בטבלה אני לא רואה איך אני יכולה להקצות בפעם אחת (אלא אם כן הטבלה היא של A ולא של פוינטר ל-A, אבל זה לא אפשרי, כי A הוא מחלקה אבסטרקטית..
).. נראה לי שלא הסברתי את עצמי כל כך טוב... מקווה שהבנתם. תודה, שרון.
בנושא הקצאות דינמיות וסטטיות: בתכנית שכתבתי, אני אמורה להחזיק המון טבלאות נתונים (בזיכרון) לצרוך חישובים. הטבלה מוגדרת כוקטור של פוינטרים למבנה מסוים, שהוא מחלקה אבסטרקטית. נקרא לה A. B ו- C הן 2 מחלקות היורשות מ- A, כך שבפועל הפונקציה בונה טבלה שהיא וקטור של B-ים או וקטור של C-ים. כרגע ההקצאה היא דינמית והיא מבוצעת בנפרד עבור כל שורה בטבלה. הבעיה היא שבגלל גודל הטבלאות ומספרן, ההקצאה הדינמית המפוצלת מאוד מאטה את התכנית וגורמת לה להיות לא יעילה. כיצד אני יכולה לייעל את התכנית? האם ניתן להקצות את כל הטבלה בבת אחת? (אני יודעת מה הגודל המקסימלי שלה) הרי גם אם אני מקצה את הוקטור של הפוינטרים מראש, את השורות בטבלה אני לא רואה איך אני יכולה להקצות בפעם אחת (אלא אם כן הטבלה היא של A ולא של פוינטר ל-A, אבל זה לא אפשרי, כי A הוא מחלקה אבסטרקטית..