Nutzen einer Map als Repräsentation von Daten
Contents
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 undstudentID
für dieID
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();