Karten sind Assoziative Container die Elemente auf kartierte Weise speichern. Jedes Element verfügt über einen Schlüsselwert und einen zugeordneten Wert. Keine zwei zugeordneten Werte können dieselben Schlüsselwerte haben.
std::map ist die Klassenvorlage für Kartencontainer und wird in der Header-Datei definiert.
Grundlegende std::map-Memberfunktionen
Einige grundlegende Funktionen, die mit std::map verbunden sind, sind:
- beginnen() – Gibt einen Iterator zum ersten Element in der Karte zurück.
- Ende() – Gibt einen Iterator zum theoretischen Element zurück, das auf das letzte Element in der Karte folgt.
- Größe() – Gibt die Anzahl der Elemente in der Karte zurück.
- maximale Größe() – Gibt die maximale Anzahl von Elementen zurück, die die Karte enthalten kann.
- leer() – Gibt zurück, ob die Karte leer ist.
- Paar einfügen (Schlüsselwert, Kartenwert) – Fügt der Karte ein neues Element hinzu.
- löschen (Iteratorposition) – Entfernt das Element an der Position, auf die der Iterator zeigt.
- löschen(const g) – Entfernt den Schlüsselwert „g“ aus der Karte.
- klar() – Entfernt alle Elemente aus der Karte.
Beispiele für std::map
Die folgenden Beispiele zeigen, wie grundlegende Vorgänge an Kartencontainern ausgeführt werden.
Beispiel 1: Funktion begin() und end()
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>MP; // Einige Werte in die Karte einfügen mp['one'] = 1; mp['zwei'] = 2; mp['drei'] = 3; // Holen Sie sich einen Iterator, der auf das erste Element in der // Karte zeigt mapint>::iterator it = mp.begin(); // Durch die Karte iterieren und die Elemente drucken while (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
>Ausgabe
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Komplexität der oben genannten Methode:
Zeitkomplexität: O(n) wobei n die Größe der Karte ist.
Hilfsraum: An)
Beispiel 2: size()-Funktion
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>Karte; // Einige Werte in die Karte einfügen map['one'] = 1; map['two'] = 2; map['drei'] = 3; // Drucke die Größe des Kartenausschnitts aus<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
Normalformen
>Ausgabe
Size of map: 3>
Komplexität der oben genannten Methode:
Zeitkomplexität: O(1).
Beispiel 3: Map implementieren
CPP
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> >// empty map container> >map<>int>,>int>>gquiz1;> >// insert elements in random order> >gquiz1.insert(pair<>int>,>int>>(1, 40));> >gquiz1.insert(pair<>int>,>int>>(2, 30));> >gquiz1.insert(pair<>int>,>int>>(3, 60));> >gquiz1.insert(pair<>int>,>int>>(4, 20));> >gquiz1.insert(pair<>int>,>int>>(5, 50));> >gquiz1.insert(pair<>int>,>int>>(6, 50));> >// another way of inserting a value in a map> >gquiz1[7] = 10;> >// printing map gquiz1> >map<>int>,>int>>::iterator itr;> >cout <<>'
The map gquiz1 is :
'>;> >cout <<>' KEY ELEMENT
'>;> >for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> >cout <<>' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
>
>Ausgabe
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Komplexität der oben genannten Methode:
Zeitkomplexität: O(n log(n)), da n die Größe der Karte ist
Nebenraum: An)
Beispiel 4: Map of Integers implementieren
C++
So deaktivieren Sie den Entwicklermodus
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>Karte; // Einige Werte in die Karte einfügen map['one'] = 1; map['two'] = 2; map['drei'] = 3; // Werte im Kartencout ausgeben<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cout<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
>Ausgabe
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Liste aller Funktionen von std::map
Die folgende Tabelle enthält alle in der Klasse std::map definierten Funktionen.
| Funktion | Definition |
|---|---|
| map::insert() | Elemente mit einem bestimmten Schlüssel in den Kartencontainer einfügen –> O(log n) |
| map::count() | Gibt die Anzahl der Übereinstimmungen mit dem Element mit dem Schlüsselwert „g“ in der Karte zurück. –> O(log n) |
| Karte equal_range() | Gibt einen Iterator von Paaren zurück. Das Paar bezieht sich auf die Grenzen eines Bereichs, der alle Elemente im Container umfasst, die einen Schlüssel haben, der k entspricht. |
| Karte löschen() | Wird verwendet, um Elemente aus dem Container zu löschen –> O(log n) |
| Karte rend() | Gibt einen umgekehrten Iterator zurück, der auf das theoretische Element direkt vor dem ersten Schlüssel-Wert-Paar in der Karte zeigt (das als sein umgekehrtes Ende betrachtet wird). |
| Karte rbegin()
| Gibt einen umgekehrten Iterator zurück, der auf das letzte Element der Karte zeigt. |
| Kartensuche() | Gibt einen Iterator an das Element mit dem Schlüsselwert „g“ in der Karte zurück, falls gefunden, andernfalls wird der Iterator an das Ende zurückgegeben. |
| crbegin() und crend() zuordnen | crbegin() gibt einen konstanten Reverse-Iterator zurück, der auf das letzte Element im Map-Container verweist. crend() gibt einen konstanten Reverse-Iterator zurück, der auf das theoretische Element vor dem ersten Element in der Karte zeigt. |
| Karte cbegin() und cend() | cbegin() gibt einen konstanten Iterator zurück, der auf das erste Element im Map-Container verweist. cend() gibt einen konstanten Iterator zurück, der auf das theoretische Element zeigt, das dem letzten Element in der Multimap folgt. |
| Karte emplace() | Fügt den Schlüssel und sein Element in den Kartencontainer ein. |
| Karte max_size() | Gibt die maximale Anzahl von Elementen zurück, die ein Kartencontainer enthalten kann –> O(1) |
| Karte Upper_bound() | Gibt einen Iterator zum ersten Element zurück, das dem zugeordneten Wert mit dem Schlüsselwert „g“ entspricht, oder folgt definitiv dem Element mit dem Schlüsselwert „g“ in der Zuordnung |
| Kartenoperator= | Weist den Inhalt eines Containers einem anderen Container zu und ersetzt dessen aktuellen Inhalt. |
| Karte Lower_bound() | Gibt einen Iterator zum ersten Element zurück, das dem zugeordneten Wert mit dem Schlüsselwert „g“ entspricht oder definitiv nicht vor dem Element mit dem Schlüsselwert „g“ in der Zuordnung steht –> O(log n) |
| Karte emplace_hint() | Fügt den Schlüssel und sein Element mit einem angegebenen Hinweis in den Kartencontainer ein. |
| Kartenwert_comp() | Gibt das Objekt zurück, das bestimmt, wie die Elemente in der Karte angeordnet sind (standardmäßig „<“). |
| map key_comp() | Gibt das Objekt zurück, das bestimmt, wie die Elemente in der Karte angeordnet sind (standardmäßig „<“). |
| Kartengröße() | Gibt die Anzahl der Elemente in der Karte zurück. |
| map::empty() | Gibt zurück,ob die Karte leer ist |
| map::begin() und end() | begin() gibt einen Iterator zum ersten Element in der Karte zurück. end() gibt einen Iterator zum theoretischen Element zurück, das auf das letzte Element in der Karte folgt |
| map::operator[] | Dieser Operator wird verwendet, um auf das Element zu verweisen, das sich an der im Operator angegebenen Position befindet. |
| map::clear() | Entfernt alle Elemente aus der Karte. |
| map::at() und map::swap() | Die Funktion at() wird verwendet, um den Verweis auf das Element zurückzugeben, das dem Schlüssel k zugeordnet ist. Die Funktion swap() wird verwendet, um den Inhalt zweier Karten auszutauschen. Die Karten müssen jedoch vom gleichen Typ sein, obwohl die Größen unterschiedlich sein können. Bullen gegen Ochsen |