Meine Karte ist wie folgt definiert:Löschtaste, Wert von Karte von Wert in C++
map<string, map<string, string>> _map;
Aber das Problem, das gekommen ist, ist, dass meine Karte des erste ist meist der gleiche Wert, dh
_map["key1"]["value1"] = "data1";
_map["key1"]["value2"] = "data2";
_map["key1"]["value3"] = "data3";
_map["key1"]["value4"] = "data4";
_map["key2"]["value5"] = "data5";
Also, wenn ich möchte einen bestimmten (Schlüssel, Wert) löschen, ich kann nicht verwenden _map.find („key1“) für den Iterator, weil es doppelte Einträge hat.
Gibt es eine Möglichkeit, den Iterator-Index mithilfe des Werts festzulegen?
Angenommen, ich möchte diesen Eintrag löschen:
_map["key1"]["value4"] = "data4";
Wie würde ich das tun?
Ihre Frage ist nicht klar. Anscheinend fragen Sie, wie Sie ein Element aus einer Map entfernen können, was in der Dokumentation trivial ist. Können Sie klären, was das Problem ist, das Sie lösen möchten? – juanchopanza
Sie können nicht mehr als einen Wert pro Schlüssel in einer Karte haben. –
@ A.Franzen: Er hat nicht mehr als einen Wert pro Schlüssel. Schau genau! – Nawaz