std::map mehrere Werte für einen Key
-
Hi,
weiß jmd ob man bei einer std::map auch mehrere Werte auf einen Key platzieren kann? Ich bräuchte zu einem Key insgesamt drei Werte
std::map<string, string, string, int>test;In Visual Studio wird mir kein Fehler aufgezeigt beim Compilieren, allerdings weiß ich nicht wie man auf die einezelnen Werte jetzt zugreift, bzw. diese setzen kann.
Gruß
Konrad
-
Du kannst dir doch eine Struktur oder Klasse bauen, dafür sind die da. Beispiel:
struct multi_value { string v1; string v2; int v3; }; map<string, multi_value> test;
-
Hi,
Das geht so nicht, der dritte Templateparameter hat eine andere Bedeutung. Was möchtest Du denn erreichen? Einen zweistufigen Index? Dafür brauchst Du dann zwei Maps, evtl. hilft Dir aber auch eine Hashmap, so was wie unordered_map von boost.
-
Mach dir eine eigene Klasse und nutz diese als den value
class data { public: string str1; string str2; int somevalue; }; . . . std::map<string, data> test;ETA: Artchi war schneller

-
das mit der Klasse gefällt mir sehr gut - vielen Dank für eure Tipps!
-
Alternativ:
std::map<std::string, std::list<std::string> >