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önnte

    my_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]); oder string(my_string,0,1); anzubieten).



  • ok danke, ich habs jetzt mit nem char gemacht


Anmelden zum Antworten