Map mit 2 Werten als value
-
Hallo!
Ich brauche eine Map, die einen Int Key auf einen oder 2 Integers abbildet.
D.h. prinzipiell wuerde das gehen:map<int, vector<int> > m;vector haette dann als size also IMMER 1 oder 2. Mir erscheint das nur etwas Overkill einen vector zu nehmen, wenn ich eh schon weiss, dass ich nie was anderes als einen oder 2 Werte brauche.
Gibt es da eine bessere Struktur?
-
mappaK schrieb:
Gibt es da eine bessere Struktur?
Jo, std::pair oder Array z.B.
Falls der Value Container aber wissen soll, ob er 1 oder 2 Elemente trägt, solltest du dir wohl eine kleine Klasse schreiben.
-
Boost hat static_vector, der aber auch leer sein kann.
-
mappaK schrieb:
Gibt es da eine bessere Struktur?
Es gibt keine bessere Struktur. Aber ich implementiere Dir mal schnell eine:
struct MyValue { int oneIntegerValue; int otherIntegerValue; };Sinnvollerweise solltest Du die Bezeichner sinnvoller benennen. Ich weiß ja nicht, was Du damit erreichen willst. Die Alternative mit
pairhat den Nachteil, dass die Elemente eben nurfirstundsecondheissen. Das wird schnell unübersichtlich. Insbesondere weil diemapja schon auspairbesteht.
-
tntnet schrieb:
Die Alternative mit
pairhat den Nachteil, dass die Elemente eben nurfirstundsecondheissen.Nichts, was ein Makro nicht flicken kann.
#define oneIntegerValue first #define otherIntegerValue second
-
Herr Makro schrieb:
tntnet schrieb:
Die Alternative mit
pairhat den Nachteil, dass die Elemente eben nurfirstundsecondheissen.Nichts, was ein Makro nicht flicken kann.
#define oneIntegerValue first #define otherIntegerValue secondUnd dann hast Du irgendwo im Code:
int oneIntegerValue=24; bool first = true;
Viel Spaß beim Fehlersuchen.