std::map >> insert()
-
Ich habe noch nie mit std::map gearbeitet, ich brauch Pärchen von stings und ints (strings sind die Schlüssel). Wie funktioniert das mit dem Einfügen?
std::map<std::string, int> tMyMap; // ... tMyMap.insert(/* ??? */);Ich kann ja insert() nicht einfach mit string und int als Parameter aufrufen, also wie muss ich das machen?
-
Hallo
typedef std::map<std::string, int> MyMap; MyMap tMyMap; // ... tMyMap.insert(MyMap::value_type("mystring", 10)); // oder tMyMap.insert(std::pair<std::string, int>("mystring", 10));bis bald
akari
-
OK, danke.
-
oder:
typedef std::map<std::string, int> MyMap; MyMap tMyMap; // ... tMyMap.insert(MyMap::value_type("mystring", 10)); // oder tMyMap.insert(std::pair<std::string, int>("mystring", 10)); //oder tMyMap["mystring"] = 10;
-
und die einfachste Lösung
mymap.insert(std::make_pair("hallo", 10));So etwas findet man übrigens in Dokumentationen

@muffmolch
damit kannst du aber Einträge überschreiben!
-
klar überschreibst du damit bereits existierende einträge.
hat ja keiner gesagt, dass dies nicht erwünscht ist. anderenfalls muss er eben insert(...) verwenden und den boolean des rückgabe pairs checken.
pair<iterator,bool> insert( const TYPE& pair );aber wieso man diesbezüglich nicht einfach google verwendet...