Einfachste Methode um zu überprüfen, ob unordered_map von unordered_maps enthält die wichtigsten
Bin ich mit einer unordered_map von unordered_maps, so dass ich den Verweis auf ein element mit Hilfe der "multi-key" - syntax:
my_map[k1][k2]
.
Ist es ein bequemer Weg, um die gleiche "multi-key" - syntax zu überprüfen, ob ein element existiert, bevor Sie versuchen, darauf zuzugreifen? Wenn nicht, was ist der einfachste Weg?
InformationsquelleAutor der Frage user997112 | 2015-12-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihre Absicht ist, um test für das Vorhandensein des Schlüssels, würde ich nicht verwenden,
weil
operator[]
wird standardmäßig konstruieren Sie einen neuen Wert für diesen Schlüssel (wenn es nicht bereits vorhanden ist.Eher würde ich es vorziehen, zu verwenden
std::unordered_map::find
. Also, wenn Sie sicher sind, dass der erste Schlüssel vorhanden ist, aber nicht die zweite, die Sie tun könntenWenn Sie möchten, um eine Funktion, die überprüft das Vorhandensein von beide Schlüssel, dann könnte man etwas schreiben wie
InformationsquelleAutor der Antwort CoryKramer
wird für jedes einwertige assoziative container.
contains(my_map, k1, k2)
ist wahr, wenn es ein elementk1
enthältk2
.InformationsquelleAutor der Antwort Yakk - Adam Nevraumont
So etwas? (für die veränderliche Fall)
genannt, etwa so:
... oder es gibt die mehr python-wie Weg...
InformationsquelleAutor der Antwort Richard Hodges
Glaube ich nicht, es ist ein multi-key-syntax zu überprüfen, aber der einfachste Weg wäre, um die
find
Methode. Sie schreiben, könnte eine einfache Funktion anwenden, um eineunordered_map
vonunordered_map
sReferenz
InformationsquelleAutor der Antwort Aiden Deom
Könnte man auch verwenden, count (http://www.cplusplus.com/reference/unordered_map/unordered_map/count/ )
die 0 zurück, wenn key nicht vorhanden
InformationsquelleAutor der Antwort Hui Liu