איטרטור – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
תגיות: עריכה ממכשיר נייד עריכה דרך האתר הנייד
עריכה
שורה 1:
ב[[מדעי המחשב]] היישומיים, '''איטרטור''' הוא אובייקט המאפשר מעבר על איברי קבוצה נתונה. המעבר מתבצע באמצעות [[ממשק (תכנות)|ממשק]] מוסכם ופשוט, שאינו תלוי במימוש הפרטני של [[מבנה נתונים|מבנה הנתונים]] המממש את הקבוצה.
 
רבות מ[[שפת תכנות|שפות התכנות]] העדכניות מאפשרות להגדיר [[אלגוריתם|אלגוריתמים]] דרך פעולתם על איטרטורים. האלגוריתם המתקבל מסוגל לפעול על כל מבנה נתונים התומך באיטרטורים.
{{ש}}נציין, כי על מנת להשתמש באיטרטורים חובה להגדיר [[סדר טוב]] על המבנה: עבור כל איבר, חייב להיות מוגדר האיבר '''הבא''' לו והאיבר '''הקודם''' לו. נשים לב כי עלולה להיווצר בעיה, כאשר אנו מעוניינים להתקדם לאיבר הבא מהאיבר המוגדר כ"אחרון" או לסגת לאיבר הקודם מהאיבר המוגדר כ"ראשון".
{{ש}}באופן פרטני יותר, ניתן לבצע באמצעות האיטרטור את הפעולות הבאות:
שורה 10:
* החזר למשתמש את המידע שנמצא בתוך האיבר עליו מצביע האיטרטור.
 
בהכללה, נניח שקיימים <math>m</math> מבני נתונים שונים, ו- <math>n</math> אלגוריתמים. שימוש באיטרטורים מאפשר כתיבת <math>m + n</math> קטעי [[קוד מקור|קוד]], במקום <math>m\times n</math> קטעי קוד (אחד לכל שילוב אפשרי של אלגוריתם ומבנה נתונים). זהו הבסיס לרבות מספריות מבני הנתונים והאלגוריתמים העדכניות (למשל ב[[ספריית התבניות התקנית#איטרטורים|שפת התכנות ++C]]).
 
== דוגמה לשימוש באיטרטורים==
שורה 21:
# בקש ממבנה הנתונים איטרטור לאיבר הראשון; קבע את האיטרטור הנוכחי כאיטרטור עליו מצביעים כרגע.
# בקש ממבנה הנתונים איטרטור לאיבר האחרון.
# כל עוד האיבר המוצבע על ידי האיטרטור הנוכחי אינו ממלא את הקריטריון, בדוק האם הוא שקול לאיטרטור האחרון. אם כן, האיבר המבוקש אינו נמצא במבנה שלנו. אם לא, קדם את האיטרטור לאיבר הבא.
שימו לב כי מדובר באלגוריתם כללי שאינו תלוי במבנה הנתונים.