Assoziative Arrays in C++
In diesem Artikel werden wir die assoziativen Arrays und ihre Implementierung in der Programmiersprache C++ verstehen.
Ein Überblick über Arrays in C++
Ein Array ist eine Sammlung von Objekten, die eine Reihe von Variablen enthalten, die unter demselben Namen gespeichert sind. Alle Elemente sind vom gleichen Datentyp; Der Typ kann eine Liste, eine Ganzzahl oder eine Zeichenfolge sein.
Sie definieren eine Array-Variable, z. B. Zahlen, und verwenden dann die Indizes Zahlen[0], Zahlen[1]
usw. bis zu Zahlen[99]
, um einzelne Variablen darzustellen, anstatt jede Variable einzeln zu definieren. wie Zahl0, Zahl1,... und Zahl99
. Ein bestimmtes Element eines Arrays kann durch Verwendung eines Index erreicht werden.
Es gibt zwei Array-Typen: indizierte und assoziative Arrays. Sowohl indizierte als auch assoziative Arrays haben einzigartige Schlüssel, die nur einmal verwendet werden können.
Ein Array mit einem numerischen Schlüssel wird als indiziertes Array bezeichnet. In seiner einfachsten Form hat es die Form eines Arrays, wobei jeder Array-Schlüssel mit seinem eigenen Wert verbunden ist.
Assoziative Arrays in C++
In diesem Abschnitt konzentrieren wir uns auf assoziative Arrays in C++.
Eine einzigartige Art von Array, die als assoziatives Array bekannt ist, ist eines, bei dem der Wert des Index von einem beliebigen Datentyp sein kann. Der Index kann einer der folgenden sein: eine Ganzzahl, ein Zeichen, ein Fließkommawert, eine Zeichenfolge usw.
Die Indexwerte müssen jedoch vollständig eindeutig sein, um Zugriff auf die im Array enthaltenen Datenelemente zu erhalten. Der Name, der dem Index in einem assoziativen Array gegeben wird, wird als Schlüssel bezeichnet, und die an dieser bestimmten Stelle gespeicherten Daten werden als Wert bezeichnet.
Als Ergebnis können wir das assoziative Array als Schlüssel-Wert-Paar konzeptualisieren. Daher sind die Komponenten eines assoziativen Arrays Paare, die aus einem Schlüssel und einem Wert bestehen.
Implementierung der assoziativen Arrays in C++
In der Programmiersprache C++ können assoziative Arrays auch als Maps bezeichnet werden. Sehen wir uns ein Beispiel an, um zu veranschaulichen, wie die Karte in C++ so konstruiert wird, dass sie einen Schlüssel für den geparsten Wert zurückgibt.
Zuerst müssen wir die Bibliotheken importieren, damit unsere Anwendung die map
und die anderen Methoden verwenden kann.
#include <iostream>
#include <map>
Erstellen Sie eine Map cgpa
mit dem String-Typ als Schlüssel und dem Typ Float als Wert innerhalb der main()
-Methode Ihres Programms. Füllen Sie die Karte mit einigen String- und Float-Werten in den entsprechenden Bereichen.
map<string, float> cgpa{{"Nabeel", 3.3},
{"Daniyal", 3.7},
{"Saad", 3.4},
{"Hamza", 3.1},
{"Zeeshan", 3.9}};
Erstellen Sie einen Iterator für die Karte.
map<string, float>::iterator i;
Zeigen Sie eine Meldung an, die alle in der Karte enthaltenen Werte auflistet. Erstellen Sie eine for
-Schleife, die alle Werte anzeigt, während sie die Karte von Anfang bis Ende durchläuft.
cout << "The CGPA of all the students is as follows:" << endl;
for (i = cgpa.begin(); i != cgpa.end(); i++) {
cout << i->first << " - " << i->second << endl;
}
Lassen Sie uns nun einige Werte aus der Karte basierend auf ihren Schlüsseln abrufen.
cout << "\nThe CGPA of Hamza is: " << cgpa["Hamza"] << endl;
cout << "\nThe CGPA of the Delft Stack writer Saad is: " << cgpa["Saad"]
<< endl;
Vollständiger Quellcode:
#include <iostream>
#include <map>
using namespace std;
int main() {
map<string, float> cgpa{{"Nabeel", 3.3},
{"Daniyal", 3.7},
{"Saad", 3.4},
{"Hamza", 3.1},
{"Zeeshan", 3.9}};
map<string, float>::iterator i;
cout << "The CGPA of all the students is as follows:" << endl;
for (i = cgpa.begin(); i != cgpa.end(); i++) {
cout << i->first << " - " << i->second << endl;
}
cout << "\nThe CGPA of Hamza is: " << cgpa["Hamza"] << endl;
cout << "\nThe CGPA of the Delft Stack writer Saad is: " << cgpa["Saad"]
<< endl;
}
Ausgang:
The CGPA of all the students is as follows:
Daniyal - 3.7
Hamza - 3.1
Nabeel - 3.3
Saad - 3.4
Zeeshan - 3.9
The CGPA of Hamza is: 3.1
The CGPA of the Delft Stack writer Saad is: 3.4
I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.
LinkedIn