std::map<std::string, int> initalisieren?
-
Hallo Leute,
gibt es ne möglichkeit beim erzeugen eine map diese schon mit werten zu initialisieren?
std::map<std::string, int> oMAP;ist evtl. ne blöde frage, da es syntaktisch schon fast unmachbar ist..

-
siehe http://www.boost.org/doc/libs/1_35_0/libs/assign/doc/index.html
das macht folgendes möglich:
{ using namespace std; using namespace boost; using namespace boost::assign; vector<int> v = list_of(1)(2)(3)(4).to_container( v ); set<int> s = list_of(1)(2)(3)(4).to_container( s ); map<int,int> m = map_list_of(1,2)(2,3).to_container( m ); stack<int> st = list_of(1)(2)(3)(4).to_adapter( st ); queue<int> q = list_of(1)(2)(3)(4).to_adapter( q ); array<int,4> a = list_of(1)(2)(3)(4).to_array( a ); }
-
genau sowas bräuchste ich sowas wie
std::map<std::string, int> oMAP({"A",1},{"B",2},{"C",3});theortisch könnte ich ne eigne funktion schreiben
std::map<std::string, int> fillMap(std::map<std::string, int> oDest,...){ //.. va_list gedöns }
-
va_args ist broken für objekte
nimm doch einfach
map<string,int> m = map_list_of("a",2)("b",3).to_container( m );