problem mit map und [] operator
-
Hallo,
ich hab ein problem und zwar hab ich eine map<string, int> und ich ich möchte wie folgt darauf zugreifen:
int main() { map<string, int> my_map; string my_string = "abcd"; my_map[my_string[0]] = 1; ++my_map[my_string[0]]; return 0; }doch das geht nicht, da my_string[0] ein char zurüch gibt.
mir ist gerade aufgefallen, dass ich es mit einem substr machen könntemy_map[my_string.substr(0, 1)] = 1;doch gibt es noch eine bessere möglichkeit,mit einem string auf eine map zuzugreifen?
mfg
gucky
-
Gucky schrieb:
doch das geht nicht, da my_string[0] ein char zurüch gibt.
Dann bau dir eben einen entsprechenden string!? Wenn du offenbar nur einzelne Buchstaben als key verwenden willst, warum machst du dann nicht gleich eine map<char, int>!?
-
Wozu verwendest du denn überhaupt eine map<string,...>, wenn du dort nur einzelne Zeichen reinpacken willst? Wenn das wirklich sinnvoll ist: std::string hat aus Sicherheitsgründen (Stichwort: implizite Typumwandlung) keinen Konstruktor für einzelne Zeichen, also mußt du expilzit einen Teilstring erzeugen (als Alternative zu substr() hätte ich noch
string(1,my_string[0]);oderstring(my_string,0,1);anzubieten).
-
ok danke, ich habs jetzt mit nem char gemacht