Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

std::map in C++ meistern: Umfassender Guide mit Code‑Beispielen

Was ist std::map?

In der C++ Standard Template Library (STL) ist std::map ein assoziativer Container, der Elemente als Schlüssel‑Wert‑Paare speichert. Jeder Schlüssel ist einzigartig, und der Container hält die Elemente automatisch sortiert gemäß der Vergleichsfunktion des Schlüssels (Standard: std::less). Die Werte können beliebige Typen haben und werden über ihre Schlüssel adressiert.

Warum std::map nutzen?

Syntax

Map deklarieren mit:

std::map<KeyType, ValueType> mapName;

Beispiel:

std::map<std::string, int> ageMap;

Member‑Typen

Eingebaute Funktionen

Über Map‑Elemente iterieren

Iteratoren geben volle Kontrolle über die Durchlaufreihenfolge, die immer nach Schlüssel sortiert ist.

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main() {
    map<int, string> students;
    students.insert({200, "Alice"});
    students.insert({201, "John"});
    cout << "Map size is: " << students.size() << endl;
    cout << endl << "Standard‑Map‑Reihenfolge:" << endl;
    for (auto it = students.begin(); it != students.end(); ++it) {
        cout << it->first << ": " << it->second << endl;
    }
    return 0;
}

Ausgabe:

std::map in C++ meistern: Umfassender Guide mit Code‑Beispielen

Daten in std::map einfügen

Verwenden Sie insert() für neue Einträge; Duplikate werden stillschweigend ignoriert. Um einen bestehenden Schlüssel zu überschreiben, nutzen Sie insert_or_assign().

#include <map>
#include <iostream>
using namespace std;
int main() {
    map<int, int> m{{1,3},{2,4},{3,5}};
    m.insert({5,6});        // fügt neues Paar ein
    m.insert({1,8});        // ignoriert, Key 1 existiert bereits
    m.insert_or_assign(1,6); // aktualisiert Key 1 auf Wert 6
    cout << "Key\tElement\n";
    for (auto& p : m) {
        cout << p.first << '\t' << p.second << '\n';
    }
    return 0;
}

Ausgabe:

std::map in C++ meistern: Umfassender Guide mit Code‑Beispielen

In einer Map suchen

Das Finden eines Schlüssels ist mit find() einfach. Existiert der Schlüssel, zeigt der zurückgegebene Iterator auf das Element; andernfalls wird end() zurückgegeben.

#include <iostream>
#include <map>
using namespace std;
int main() {
    map<int, string> students;
    students.insert({200, "Alice"});
    students.insert({201, "John"});
    if (auto it = students.find(201); it != students.end()) {
        cout << "Key 201 hat Wert: " << it->second << endl;
    }
    return 0;
}

Ausgabe:

std::map in C++ meistern: Umfassender Guide mit Code‑Beispielen

Daten aus einer Map löschen

Elemente können per Schlüssel oder per Iterator entfernt werden. erase() invalidiert nur Iteratoren, die auf das gelöschte Element zeigen.

#include <iostream>
#include <map>
using namespace std;
int main() {
    map<string, int> myMap;
    myMap["cow"] = 1;
    myMap["cat"] = 2;
    myMap["lion"] = 3;
    if (auto it = myMap.find("cat"); it != myMap.end()) {
        myMap.erase(it);
    }
    for (auto& p : myMap) {
        cout << p.first << ": " << p.second << endl;
    }
    return 0;
}

Ausgabe:

std::map in C++ meistern: Umfassender Guide mit Code‑Beispielen

Zusammenfassung

C Sprache

  1. C-Standardbibliothek-Funktionen meistern: Praxisleitfaden
  2. C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
  3. C++ do‑while‑Schleife: Syntax, Praxisbeispiele und verschachtelte Schleifen
  4. C++ switch‑case meistern: Syntax, Einsatz und Praxisbeispiele
  5. C++ Dynamische Array‑Allokation: Praktischer Leitfaden mit Code‑Beispielen
  6. C++ Zeiger meistern: Konzepte, Beispiele & praktische Anwendungen
  7. C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
  8. std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele
  9. C++-Funktionen erklärt: Mit praktischen Code-Beispielen
  10. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle