map mit unterschiedlichen Value
-
Hallo zusammen,
ich bin über folgende Frage gestolpert. Es ist möglich ein map wie folgt zu deklarieren map<int, double>. Die Frage die sich nun mir stellt ist, ob es auch möcglich ist ein map<int, dyamisch> zu definieren. also es soll beispielsweise so aussehen können
map[0] = double; map[1] = char; //usw...Danke im Voraus!
-
Siehe Boost.Any
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ (auch C++0x) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
rüdiger schrieb:
Siehe Boost.Any
Meistens ungeeignet. Da würde ich eher noch boost::variant empfehlen.
@TE: Was hast du denn vor? Möglicherweise gibt es eine andere Lösung, die besser ist

-
314159265358979 schrieb:
Meistens ungeeignet. Da würde ich eher noch boost::variant empfehlen.
Leider schon wieder eine kurze, absolute Aussage ohne hinreichende Begründung. Ob variant oder any angebracht sind, hängt vom jeweiligen Fall ab. Im vorliegenden Fall gibts noch nicht genug Informationen, um das richtig bewerten zu können.
Mag sein, dass es in vielen Fällen auch mit einem Variant getan ist. Das heißt aber nicht, dass Any da völlig ungeeignet ist. Und ob das wirklich in den meisten Fällen der Fall ist, kann wohl niemand beurteilen, da es einfach zu viele unterschiedliche Anwendungsfälle gibt.
-
Hallo nochmals,
es sollte Perfomand sein und nur einfache Datentypen auf der Valueseite enthalten. Sprich als Key nur Integer und Value Typen wie double, Integer, char, string usw.. Ich möchte diese Map in einer Klasse anlegen und über get/set Methode den Wert auslesen/schreiben.
-
J.Wayne schrieb:
als Key nur Integer und Value Typen wie double, Integer, char, string usw..
Wenn nur eine vorher festgelegte Handvoll Typen als Values möglich sein soll, dann ist Boost.Variant allerdings die geeignetere Alternative.
-
soweit ich das verstanden habe ist es nicht mit map und templates möglich. Werde mal boost.variant genau unter die Lupe nehmen

Danke euch!
-
J.Wayne schrieb:
soweit ich das verstanden habe ist es nicht mit map und templates möglich.
Doch, nämlich mit map und variant, was ein template ist. Du brauchst es nur nicht selbst zu schreiben

-
Achso
Ok danke für die Info!
-
pumuckl schrieb:
314159265358979 schrieb:
Meistens ungeeignet. Da würde ich eher noch boost::variant empfehlen.
Leider schon wieder eine kurze, absolute Aussage ohne hinreichende Begründung. Ob variant oder any angebracht sind, hängt vom jeweiligen Fall ab. Im vorliegenden Fall gibts noch nicht genug Informationen, um das richtig bewerten zu können.
Mag sein, dass es in vielen Fällen auch mit einem Variant getan ist. Das heißt aber nicht, dass Any da völlig ungeeignet ist. Und ob das wirklich in den meisten Fällen der Fall ist, kann wohl niemand beurteilen, da es einfach zu viele unterschiedliche Anwendungsfälle gibt.Ich möchte deine Aussage gar nicht anzweifeln, aber nun mal ehrlich: Wie oft braucht man any wirklich? Ich habe noch nie auch nur einen einzigen Anwendungsfall dafür gesehen. Bitte zeig mir einen, wenn du einen kennst.
-
Die Frage steht immer noch im Raum: Wozu brauchst du das? Meistens geht es ohne diese Typ-Rumprobierereien eleganter.