Karten sind Teil der C++ STL (Standard Template Library). Karten sind assoziative Container, die sortierte Schlüssel-Wert-Paare speichern, in denen jeder Schlüssel eindeutig ist und eingefügt oder gelöscht, aber nicht geändert werden kann. Mit Schlüsseln verknüpfte Werte können geändert werden.
Zum Beispiel: Eine Karte von Mitarbeitern, bei der die Mitarbeiter-ID der Schlüssel und der Name der Wert ist, kann wie folgt dargestellt werden:
Schlüssel | Werte |
---|---|
101 | Nikita |
102 | Robin |
103 | Tief |
104 | John |
Syntax
template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator<pair"> // map::allocator_type > class map; </class>
Parameter
Schlüssel: Der Schlüsseldatentyp, der in der Karte gespeichert werden soll.
Typ: Der Datentyp des Werts, der in der Karte gespeichert werden soll.
vergleichen: Eine Vergleichsklasse, die zwei Argumente desselben Typs bool akzeptiert und einen Wert zurückgibt. Dieses Argument ist optional und das binäre Prädikat less ist der Standardwert.
zuordnen: Typ des Allokatorobjekts. Dieses Argument ist optional und der Standardwert ist allocator .
Zum Array Java hinzufügen
Erstellen einer Karte
Karten können einfach mit der folgenden Anweisung erstellt werden:
typedef pair value_type;
Das obige Formular wird zum Erstellen einer Karte mit dem Schlüsseltyp verwendet Schlüsselart und Wert des Typs Werttyp. Wichtig ist, dass der Schlüssel einer Karte und die entsprechenden Werte immer als Paar eingefügt werden. Sie können nicht nur einen Schlüssel oder nur einen Wert in eine Karte einfügen.
Beispiel 1
#include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = 'Nikita'; Employees[105] = 'John'; Employees[103] = 'Dolly'; Employees[104] = 'Deep'; Employees[102] = 'Aman'; cout << 'Employees[104]=' << Employees[104] << endl << endl; cout << 'Map size: ' << Employees.size() << endl; cout << endl << 'Natural Order:' << endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } cout << endl << 'Reverse Order:' << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } }
Ausgabe:
Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
Mitgliedsfunktionen
Nachfolgend finden Sie die Liste aller Mitgliedsfunktionen von Map:
Erbauer/Zerstörer
Funktionen | Beschreibung |
---|---|
Konstrukteure | Karte erstellen |
Zerstörer | Kartenzerstörer |
Operator= | Elemente der Karte auf eine andere Karte kopieren. |
Iteratoren
Funktionen | Beschreibung |
---|---|
beginnen | Gibt einen Iterator zurück, der auf das erste Element in der Karte zeigt. |
cbeginnen | Gibt einen konstanten Iterator zurück, der auf das erste Element in der Karte zeigt. |
Ende | Gibt einen Iterator zurück, der auf das vergangene Ende zeigt. |
ein paar | Gibt einen konstanten Iterator zurück, der auf das vergangene Ende zeigt. |
rbeginnen | Gibt einen umgekehrten Iterator zurück, der auf das Ende zeigt. |
macht | Gibt einen umgekehrten Iterator zurück, der auf den Anfang zeigt. |
crbegin | Gibt einen konstanten Reverse-Iterator zurück, der auf das Ende zeigt. |
glauben | Gibt einen konstanten Reverse-Iterator zurück, der auf den Anfang zeigt. |
Kapazität
Funktionen | Beschreibung |
---|---|
leer | Gibt true zurück, wenn die Karte leer ist. |
Größe | Gibt die Anzahl der Elemente in der Karte zurück. |
maximale Größe | Gibt die maximale Größe der Karte zurück. |
Elementzugriff
Funktionen | Beschreibung |
---|---|
Operator[] | Rufen Sie das Element mit dem angegebenen Schlüssel ab. |
bei | Rufen Sie das Element mit dem angegebenen Schlüssel ab. |
Modifikatoren
Funktionen | Beschreibung |
---|---|
einfügen | Element in die Karte einfügen. |
löschen | Elemente aus der Karte löschen. |
tauschen | Tauschen Sie den Inhalt der Karte aus. |
klar | Löschen Sie alle Elemente der Karte. |
Standort | Konstruieren Sie die neuen Elemente und fügen Sie sie in die Karte ein. |
emplace_hint | Konstruieren Sie neue Elemente und fügen Sie sie per Hinweis in die Karte ein. |
Beobachter
Funktionen | Beschreibung |
---|---|
key_comp | Gibt eine Kopie des Schlüsselvergleichsobjekts zurück. |
value_comp | Gibt eine Kopie des Wertvergleichsobjekts zurück. |
Operationen
Funktionen | Beschreibung |
---|---|
finden | Suchen Sie nach einem Element mit dem angegebenen Schlüssel. |
zählen | Ruft die Anzahl der Elemente ab, die mit dem angegebenen Schlüssel übereinstimmen. |
untere_Grenze | Gibt einen Iterator zur Untergrenze zurück. |
obere Grenze | Gibt einen Iterator zur Obergrenze zurück. |
equal_range | Gibt den Bereich der Elemente zurück, die mit dem angegebenen Schlüssel übereinstimmen. |
Allokator
Funktionen | Beschreibung |
---|---|
get_allocator | Gibt ein Allokatorobjekt zurück, das zum Erstellen der Karte verwendet wird. |
Überladene Nicht-Member-Funktionen
Funktionen | Beschreibung |
---|---|
Operator== | Überprüft, ob die beiden Karten gleich sind oder nicht. |
Operator!= | Überprüft, ob die beiden Karten gleich sind oder nicht. |
Operator< | Überprüft, ob die erste Karte kleiner als die andere ist oder nicht. |
Operator<=< td> | Überprüft, ob die erste Karte kleiner oder gleich der anderen ist oder nicht. | =<>
Operator> | Überprüft, ob die erste Karte größer als die anderen ist oder nicht. |
Operator>= | Überprüft, ob die erste Karte größer als gleich der anderen ist oder nicht. |
tauschen() | Tauscht das Element zweier Karten aus. |