In C++ tun oft so etwas wie diese:Was ist äquivalent zu map <int, vector <int>> in Python?
typedef map<int, vector<int> > MyIndexType;
Wo ich es dann wie folgt verwenden:
MyIndexType myIndex;
for(... some loop ...)
{
myIndex[someId].push_back(someVal);
}
Wenn in der Karte gibt es keinen Eintrag den Code ein neue leere Vektor einfügen und dann anhängen.
In Python würde es so aussehen:
myIndex = {}
for (someId,someVal) in collection:
try:
myIndex[someId].append(someVal)
except KeyError:
myIndex[someId] = [someVal]
Der Versuch, außer ein bisschen hier hässlich. Gibt es eine Möglichkeit, dem Wörterbuch einen Objekttyp mitzuteilen, der eingefügt werden soll, wenn ein KeyError bei der Deklarationszeit des Wörterbuchs auftritt?
Sie sollten in multimap <> für Ihren C++ - Code suchen. – SoapBox
Eine Multimap ist hier nicht unbedingt die richtige Datenstruktur. Das Verschachteln eines Vektors in einer Karte ist in Ordnung. –
Zustimmen: ein multimap würde nicht die Reihenfolge der Einfügung als Karte beibehalten > würde. –
Alastair