Nutzen einer Map als Repräsentation von Daten#

Anpassen der Studierenden-Datenbank#

In Aufgabe 2.2 haben sie eine Struct Student erstellt, die diese drei Felder enthält:

  • name für den Namen des Studierenden,

  • age für das Alter des Studierenden und

  • studentID für die ID des Studierenden.

Davon wurden zwei Studierenden-Instanzen erstellt und ihre Felder initialisiert.

Es kann dazu im Notebook direkt auf die Hilfsseiten der STL zugegriffen werden über `?Begrif``, zum Beispiel

?std::map

Dies öffnet die Informationen direkt aus dem Netz (und kann daher ein paar Sekunden benötigen).

?std::map

Aufgabe: Ablegen in einer Map#

ToDo: Ihre Aufgabe ist nun, dies in einer `map` abzulegen. Nutzen sie hierfür zuerst einfach eine Map mit dem String `name` als key und dem int `age` als value. Passen sie diese dann so an, dass für den Value ein entsprechendes struct genutzt wird. Geben sie die Informationen der Studierenden mit Hilfe von `std::cout` auf der Konsole aus, indem sie über die map in einer for-Schleife iterieren.
#include <iostream>
#include <map>
#include <string>

// Definition des Studierenden-Structs
struct Student
{
    std::string name; // Name des Studierenden
    int age;        // Alter des Studierenden
    int studentID;    // ID des Studierenden
};
int main()
{
    // Erstellung von Studierenden-Instanzen
    Student student1; // Erstellung einer Studierenden-Instanz mit Namen student1
    Student student2; // Erstellung einer weiteren Studierenden-Instanz mit Namen student2

    // Initialisierung der Felder der Studierenden-Instanzen
    student1.name = "Alice";
    student1.age = 21;
    student1.studentID = 12345;

    student2.name = "Bob";
    student2.age = 20;
    student2.studentID = 67890;

    // Erstellung der Map als Studierenden-Datenbank
    // ToDo: Create a map over std::string that points to the age (and later to a struct)

    // Hinzufügen von Studierenden in die Map
    // ... [student1.name] = student1.age;

    // Ausgabe der Informationen der Studierenden aus der Map
    // ToDo iterate over the map
    for (const auto &entry : ...)
    {
        std::cout << ... << std::endl;
    }

    return 0;
}
main();