כיצד לחזור על המפה ב- C ++

How Iterate Over Map C



במדריך מהיר זה נראה כיצד לחזור על המפה ב- C ++.

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







נעבור על כל אחד אחד.



שימוש עבור לולאה עם stp :: מפה

יצרנו מפה בשם | _+_ | והכניס אליו זוגות ערך-מפתח.



<ל>
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
באמצעות מרחב שמותשעה (ות;
intרָאשִׁי() {
// אתחל מפה
מַפָּה>'הוֹדוּ','דלהי'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('נפאל','קטמנדו'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('חרסינה','בייג'ינג'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('צָרְפַת','פריז'));

// חזור באמצעות iterator עבור לולאה
ל (אוטומטיitr=countryCapitalMap.התחל();itr!=countryCapitalMap.סוֹף();itr++)
{
שעה (ות::עֲלוּת <<itr->ראשון// מפתח גישה
<< ':'
<<itr->שְׁנִיָה// ערך גישה
<<שעה (ות::endl;
}
לַחֲזוֹר 0;
}
</ל>
תְפוּקָה:
<ל>
חרסינה:בייג'ינג
צָרְפַת:פריז
הוֹדוּ:דלהי
נפאל:קטמנדו
</ל>

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





אם אתה מבחין, השתמשנו | _+_ | מציין סוג עבור איטרציה של מפות בגלל הקריאות. אתה יכול להשתמש | _+_ | גם במפורש.
הערה: אם אתה רואה את הפלט, הוא ממוין לפי מקשים בסדר עולה. הסיבה לכך היא ש- std :: map הוא מיכל אסוציאטיבי ממוין עם משווה מסופק (גרסה C ++ 11 ואילך). מכיוון שלא סיפקנו השוואה כלשהי, כך ש- C ++ השתמשה ב- Comparator ברירת המחדל עבור מחרוזת.

שימוש בעוד לולאה עם stp :: map

אנו יכולים גם להשתמש בלולאת זמן במקום בלולאה.



<ל>
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
#כלול>
באמצעות מרחב שמותשעה (ות;
intרָאשִׁי() {
// אתחל מפה
מַפָּה<מחרוזת, מחרוזת>countryCapitalMap;
// הכנס אלמנטים שונים למפה
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('הוֹדוּ','דלהי'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('נפאל','קטמנדו'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('חרסינה','בייג'ינג'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('צָרְפַת','פריז'));


// צור איטרציה למפה והתחל עם התחל
אוטומטיitr=countryCapitalMap.התחל();
// חזור באמצעות iterator בלולאת while
בזמן (itr!=countryCapitalMap.סוֹף())
{
שעה (ות::עֲלוּת <<itr->ראשון// מפתח גישה
<< ':'
<<itr->שְׁנִיָה// ערך גישה
<<שעה (ות::endl;
itr++;
}
לַחֲזוֹר 0;
}
</ל>
תְפוּקָה:
<ל>
חרסינה:בייג'ינג
צָרְפַת:פריז
הוֹדוּ:דלהי
נפאל:קטמנדו
</ל>

שימוש בטווח מבוסס ללולאה (גרסת C ++ 11 ואילך)

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

<ל>
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל

באמצעות מרחב שמותשעה (ות;
intרָאשִׁי() {
// אתחל מפה
מַפָּה<מחרוזת, מחרוזת>countryCapitalMap;
// הכנס אלמנטים שונים למפה
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('הוֹדוּ','דלהי'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('נפאל','קטמנדו'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('חרסינה','בייג'ינג'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('צָרְפַת','פריז'));


// חזור באמצעות iterator עבור לולאה
ל (קבוע אוטומטי &הוא:countryCapitalMap) {
עֲלוּת <<הוא.ראשון << ':' <<הוא.שְׁנִיָה<<' n';
}

לַחֲזוֹר 0;
}
</ל>
תְפוּקָה:
חרסינה:בייג'ינג
צָרְפַת:פריז
הוֹדוּ:דלהי
נפאל:קטמנדו

שימוש בטווח מבוסס לולאה עם זוגות ערכי מפתח (גרסת C ++ 17 ואילך)

גרסה זו נתמכת מ- c ++ 17 ואילך ומספקת דרך גמישה יותר לחזרה על המפה. תוכל לגשת במפורש לזוג ערכי מפתח במפה המספק פתרון קריא עוד יותר.

<ל>
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל

באמצעות מרחב שמותשעה (ות;
intרָאשִׁי() {
// אתחל מפה
מַפָּה<מחרוזת, מחרוזת>countryCapitalMap;
// הכנס אלמנטים שונים למפה
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('הוֹדוּ','דלהי'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('נפאל','קטמנדו'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('חרסינה','בייג'ינג'));
countryCapitalMap.לְהַכנִיס(זוג<מחרוזת, מחרוזת>('צָרְפַת','פריז'));


// חזור באמצעות iterator עבור לולאה
ל (קבוע אוטומטי& [ערך מפתח] :countryCapitalMap) {
עֲלוּת <<מַפְתֵחַ<< ':' <<ערך<< ' n';
}

לַחֲזוֹר 0;
}
</ל>
תְפוּקָה:
חרסינה:בייג'ינג
צָרְפַת:פריז
הוֹדוּ:דלהי
נפאל:קטמנדו

זה קשור לאיך לחזור על המפה ב- C ++. קידוד שמח!