Iterieren über verschachtelte Karten in C
Das Durchlaufen einer Karte von Karten in C kann mithilfe verschachtelter for-Schleifen erreicht werden. Betrachten Sie den folgenden Container:
std::map<std::string, std::map<std::string, std::string>> m; // Example data m["name1"]["value1"] = "data1"; m["name1"]["value2"] = "data2"; m["name2"]["value1"] = "data1"; m["name2"]["value2"] = "data2"; m["name3"]["value1"] = "data1"; m["name3"]["value2"] = "data2";
Verschachtelte For-Schleifen:
Um über diese Karte zu iterieren, verwenden Sie verschachtelte For-Schleifen:
for (auto const &ent1 : m) { // ent1.first is the outer key for (auto const &ent2 : ent1.second) { // ent2.first is the inner key // ent2.second is the value } }
Dieser Ansatz ermöglicht den Zugriff auf den äußeren Schlüssel, den inneren Schlüssel und den Wert für jedes Element in der Verschachtelung Karte.
C 11-Verbesserungen:
In C 11 kann die bereichsbasierte for-Schleife verwendet werden, um den obigen Code zu vereinfachen:
for (auto const &[outer_key, inner_map] : m) { for (auto const &[inner_key, inner_value] : inner_map) { // Access outer_key, inner_key, and inner_value directly } }
C 17 Strukturierte Bindungen:
In C 17, strukturiert Bindungen können die Syntax weiter vereinfachen:
for (auto const &[outer_key, inner_map] : m) { for (auto const &[inner_key, inner_value] : inner_map) { // Access outer_key, inner_key, and inner_value without need for variables } }
Mit diesen Methoden können Sie verschachtelte Karten effizient durchlaufen und auf die darin enthaltenen Daten zugreifen.
Das obige ist der detaillierte Inhalt vonWie kann ich über verschachtelte Karten in C iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!