Hallo,
ich möchte ein vector erstellen um dynamisch zur Laufzeit Funktionen nacheinander durch iterieren des Vectors auszuführen. Es sind eigentlich nicht besonders viele unterschiedliche Funktionen aber ein paar der Funktionen sollen mit unterschiedlichen Variablen/Parametern für kleine Zwischenspeicherungen in vielfacher Weise existieren.
Erster Gedanke ist natürlich ein struct oder class wo die Funktion und dessen Individualdaten gekapselt werden. Per new könnte man die Varianten generieren und dem vector die Zeiger übergeben.
Und jetzt die eigentliche Sache: Die Funktionen sind teilweise umfangreich und die Anzahl an Varianten im vector könnte bis an die 100.000 oder mehr gehen.
So werden große Funktionen nur wegen der individuellen Daten (die viel kleiner sind) vielfach im struct angelegt und dies ist eigentlich ein massiver Speicherverbrauch.
Daher wäre es meiner Ansicht nach besser die Funktion so zu erstellen, dass sie nur 1x existieren und für alle Varianten (die sich ja nur in den Variablen/Parametern unterscheiden) gelten.
Eine möglichst performante Variante wäre mir natürlich am liebsten denn da wird schon einiges durchiteriert.
Meine Frage wäre jetzt was wäre ein sinnvolles Design?
Meine aktuelle Idee ist:
- erstelle ein Struct mit ausschließlich den Variablen und nur dem Funktionsaufruf. Die Funktion liegt aber aussen und ist für alle structs gültig. Der Vector müsste dann irgendwie ein Zeiger auf den Funktionsaufruf im Struct bekommen.
oder gibts sonst noch Möglichkeiten wo die Funktion nur 1x Speicher belegt aber per Individualdaten aufgerufen wird?
Grüße
ich möchte ein vector erstellen um dynamisch zur Laufzeit Funktionen nacheinander durch iterieren des Vectors auszuführen. Es sind eigentlich nicht besonders viele unterschiedliche Funktionen aber ein paar der Funktionen sollen mit unterschiedlichen Variablen/Parametern für kleine Zwischenspeicherungen in vielfacher Weise existieren.
Erster Gedanke ist natürlich ein struct oder class wo die Funktion und dessen Individualdaten gekapselt werden. Per new könnte man die Varianten generieren und dem vector die Zeiger übergeben.
Und jetzt die eigentliche Sache: Die Funktionen sind teilweise umfangreich und die Anzahl an Varianten im vector könnte bis an die 100.000 oder mehr gehen.
So werden große Funktionen nur wegen der individuellen Daten (die viel kleiner sind) vielfach im struct angelegt und dies ist eigentlich ein massiver Speicherverbrauch.
Daher wäre es meiner Ansicht nach besser die Funktion so zu erstellen, dass sie nur 1x existieren und für alle Varianten (die sich ja nur in den Variablen/Parametern unterscheiden) gelten.
Eine möglichst performante Variante wäre mir natürlich am liebsten denn da wird schon einiges durchiteriert.
Meine Frage wäre jetzt was wäre ein sinnvolles Design?
Meine aktuelle Idee ist:
- erstelle ein Struct mit ausschließlich den Variablen und nur dem Funktionsaufruf. Die Funktion liegt aber aussen und ist für alle structs gültig. Der Vector müsste dann irgendwie ein Zeiger auf den Funktionsaufruf im Struct bekommen.
oder gibts sonst noch Möglichkeiten wo die Funktion nur 1x Speicher belegt aber per Individualdaten aufgerufen wird?
Grüße