Vektoren von Maps mit Klassen als Keys
-
Hallo,
ich benoetige einen Vektor der Map
map< multinom_realisation*, vector<double>, bool()(multinom_realisation, multinom_realisation*) > nucl_sep_em_prob (fn_pt)
wobei
bool(*fn_pt)(multinom_realisation*, multinom_realisation*) = multinom_realisation_comp
und multinom_realisation und multinom_realisation_comp eine von mir erstellte Klasse bzw. Funktion sind. Problem ist nun, dass - wenn wir mal annehmen, der Vektor solle n-dimensional sein - ich nicht weiss wie ich sowohl fn_pt als auch n uebergeben kann. Ich habe mal geraten, dass es
vector< map< multinom_realisation*, vector<double>, bool()(multinom_realisation, multinom_realisation*) > > nucl_sep_em_prob (n) (fn_pt)
sein koennte (ist es aber offenbar nicht). Weiss jemand, wie man soetwas macht?
-
Hi,
wenn ich das richtig sehe, ist für das Erzeugen der Map die Dimension der vectoren nicht wichtig, sondern beim Erzeugen des Vectors vor der Zuweisung:
map< multinom_realisation*, vector<double>, bool(*)(multinom_realisation*, multinom_realisation*) > nucl_sep_em_prob (fn_pt); vector<double> meinVec(n); multinom_realisation meinKey; nucl_sep_em_prob[&meinKey] = meinVec;Das bedeutet natürlich auch, dass in Deiner Map vectoren unterschiedlicher Länge stecken können, aber so ist sie nunmal, die gute alte Map....
(eigetlich liegt es natürlich am vector
).BTW: so richtig schön zu lesen finde ich Dein Beispiel ja nicht. Es hätte durch die Verwendung von A, B und C ebensowenig an Qualität verloren wie durch die Verwendung einer Funktor-Klasse ...

Gruß,
Simon2.