Menu
Coddy logo textTech

מפה

שיעור 9 מתוך 23 בקורס C++ - ספריית התבניות הסטנדרטית של Coddy.

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


 

לכל איבר יש ערך מפתח ייחודי. בנוסף, האיברים מאוחסנים כברירת מחדל לפי ערכי המפתח בסדר עולה. 


אז איך מממשים מפות ב-C++? ראשית, עלינו לכלול את קובץ הכותרת map באמצעות #include <map>.
התחביר לאתחול מפה ב-C++ הוא כדלקמן:

map<key_DataType, value_DataType> map_name ;

כדי להכריז על מפה כמו זו שלמעלה, שבה מחרוזות משמשות כמפתחות, ומספרים שלמים משמשים כערכים המתאימים להם, נשתמש בפקודה הבאה: 

map<string, int> myMap;

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

השיטה הראשונה היא להשתמש בסימן שוויון. 

map_name[key] = value;

פעולה זו תאחסן במפה את הערך 'value' תחת המפתח 'key'.

myMap["apple"] = 3;

cout << myMap["apple"];
Output:
3

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

map_name.insert({key, value});
myMap.insert({"banana", 1});

cout << myMap["banana"];
Output:
1

שיטות של Map

שיטהתפקוד
begin()מחזירה איטרטור שמצביע על האיבר הראשון במפה
size()מחזירה את מספר האיברים במפה
empty()מחזירה אם המפה ריקה (1) או לא (0)
erase()מסירה מהמפה את הצמד שהמפתח שלו צוין
clear()מסירה את כל האיברים מהמפה
challenge icon

אתגר

בינוני

נתונים 5 שמות וציונים מהקלט. השמות והציונים מתווספים לסירוגין: מזינים שם אחד, ואז מזינים ציון המתאים לשם שהוזן לפניו, וכן הלאה. 
לאחר 10 הקלטים, מזינים מספר נוסף שמייצג כמה מהציונים של השמות שהוזנו צריך להציג, כל אחד בשורה חדשה.

 

Input
John 25
Ben 38
Ana 70
Jacob 95
Drake 50
3
Ben
Drake
Jacob
Output
38
50
95

נסו בעצמכם

#include <map>
#include <iostream>

using namespace std;

int main()
{
    // Enter your code here

    return 0;
}

כל השיעורים ביחידה C++ - ספריית התבניות הסטנדרטית

תרגלו בעצמכם: קומפיילר C++ אונליין