איטרטורים בSTL

cyberia2ooo

New member
איטרטורים בSTL

אוקיי נגיד ויש לי וקטור. עכשיו יש לי לולאה שעוברת עם forward iterator על כל האיברים ומבצעת פעולה מסויימת על האיבר הנוכחי. עכשיו הפעולה גוררת מצב שבו יש אפשרות שאני אריץ שוב לולאה שתעבור על כל האיברים באותו וקטור ממקודם, ושוב עם איטרטור קדמי. עכשיו בשתי הלולאות יש מצב שאני אצטרך למחוק איברים. איך אני יכול לעשות את זה מבלי לאבד את האיטרנטור. (הנק היא כזו בלולאה ראשונה, אם אני צריך למחוק אני עושה ככה
itr = vc.erase(itr);​
עכשיו אם אני עושה erase בלולאה השניה, אני יכול לאבד את הערך של itr)
 

אלדד28

New member
בוא תדייק קצת בשאלה,

אתה מתכוון למצב שבו בתוך הלולאה הראשונה תרוץ לולאה נוספת, או שהן ירוצו אחת אחרי השניה?
 

cyberia2ooo

New member
בתוך הלולאה תרוץ לולאה נוספת

אמרתי את זה.... עכשיו אני רוצה לדעת איזה מצב ידפוק לי את האיטרטור של הלולאה החיצונית? אני יודע שאם האיטרטור הפנימי והחיצוני מצביעים לאוטו אובייקט אז מחיקה תדפוק את שניהם. (ולתקן את שניהם לא תהיה בעיה כי אני אשים בשניהם את הערך המוחזר מerase) אבל מה אם האיטרטור הפנימי מצביע על איבר אחר ממה שהאיטרטור החיצוני מצביע.
 

אלדד28

New member
לא אמרת את זה

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