map schlüssel ändern?
-
hi
wenn ich bei einer map den schlüssel jedes objektes um z.b. 5 erhöhen will, muss ich dann die ganze map kopieren und dabei nach und nach die schlüssel ändern (was bei einer gewissen grösse mit grossen datentypen bestimmt so eine zeit in anspruch nehmen kann) oder gibt es dafür einen mir unbekannten trick?
-
Benutze map[key-5].
-
Warum willst du die Schlüssel ändern?
-
Mach eine View dafür
template <typename Map> struct map_view { Map* m; typename Map::mapped_type operator[](const typename Map::key_type& key) { return m[key - 5]; };
-
Nimm ein Boost.Intrusive Set.
-
okay, ich arbeite nun mit einer view-klasse. danke