std::map Zugriff auf Element über Iterator?
-
Hallo,
ich habe z.B. folgende Map:map<string, int> myMap;Um ein Element der Map abzufragen, prüfen ich vorher mit myMap.find("xy") ob dieses Element überhaupt existiert, und lasse mir dann mittels myMap("xy") den Wert ausgeben.
Somit muss die Map bei Vorhandensein zweimal durchsucht werden, obwohl ich die Position doch eigentlich beim find() schon habe.
Ist es möglich den Inhalt eines Map-Containers auch direkt über den Iterator abzufragen?
Gruß
Thomas
-
Hallo,
map<string, int>::iterator it = myMap.find("xy"); if( it != myMap.end()) int test = it->second;
-
Alles klar, Danke!
Sieht nur etwas putzig aus wenn man eine Struktur o.Ä. als Elemente der Map hat.
-
map<string, struktur>::iterator it = myMap.find("xy"); if( it != myMap.end()) { struktur& elem = it->second; int test = elem.member(); // ... }Und schon ist's nicht mehr putzig
