helloworld5
New member
קבוצת החזקה +MAP ב CPP
שלום רב
2 שאלות ב CPP
1-במידה ואני מקבל STRING שכתובבו {1,2,3} אני רוצה להחזיר רשימה שתכיל את שכל איבר בה יהיה תת קבוצה
{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}
אני לא מצליח לחשוב על אלגוריתם כזה, אשמח לאלגוריתם/פסודו/הסבר טוב במילים
2- אני עושה MAP <string,int> אני רוצה לבדוק כמה פעמים כל STRING הוזכר
הבעיה איך להבדיל בין הפעם הראשונה שאני מקבל את ה STRING הזה ואז אני צריך לאפס את ה VAL שלו ל 1 ובין הפעם השניה שאז לעשות ל VAL שלו ++
ובשאר הפעמים
הדרך הכי יעילה לבדוק האם STRING לא נמצא לי ב MAP זה לעשות
(ראיתי את הקוד הזה ב STACKOVERFLOW )
זה מוזר... כי הרי הפונקציה end אמורה להחזיר לי מצביע לסוף ה MAP שזה לכאורה האיבר האחרון, לא?(ואז אם אחפש את האיבר האחרון הוא יגיד לי שהכתובת שלו שווה ל END ?
הרי ככה עושים שמריצים ITERATOR, עד שהITERATOR שונה מ myMap.end שזה בעצם האיבר האחרון
(אני בכוונה לא רוצה לחפש עם לולאה ידנית של איטרטור)
תודה חברים!
תודה חברים
שלום רב
2 שאלות ב CPP
1-במידה ואני מקבל STRING שכתובבו {1,2,3} אני רוצה להחזיר רשימה שתכיל את שכל איבר בה יהיה תת קבוצה
{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}
אני לא מצליח לחשוב על אלגוריתם כזה, אשמח לאלגוריתם/פסודו/הסבר טוב במילים
2- אני עושה MAP <string,int> אני רוצה לבדוק כמה פעמים כל STRING הוזכר
הבעיה איך להבדיל בין הפעם הראשונה שאני מקבל את ה STRING הזה ואז אני צריך לאפס את ה VAL שלו ל 1 ובין הפעם השניה שאז לעשות ל VAL שלו ++
myMap[name] =1ובשאר הפעמים
myMap[name] =++הדרך הכי יעילה לבדוק האם STRING לא נמצא לי ב MAP זה לעשות
קוד:
if (myMap.find(name) == myMap.end())
cout << "no";
זה מוזר... כי הרי הפונקציה end אמורה להחזיר לי מצביע לסוף ה MAP שזה לכאורה האיבר האחרון, לא?(ואז אם אחפש את האיבר האחרון הוא יגיד לי שהכתובת שלו שווה ל END ?
הרי ככה עושים שמריצים ITERATOR, עד שהITERATOR שונה מ myMap.end שזה בעצם האיבר האחרון
(אני בכוונה לא רוצה לחפש עם לולאה ידנית של איטרטור)
תודה חברים!
תודה חברים