Ho la necessità di convertire del codice per renderlo più performante e ne sto approfittando per studiare su www.learncpp.com anche perchè era da un pò che volevo aggiungere nel mio bagaglio di skill il c++.
Ma sono inceppato in un punto nella conversione del software.
In python una cosa simile:
Ovviamente il problema maggiore (se non unico) sta nella chiave del dizionario self.regret. Contando che è un oggetto che viene inizializzato parecchie volte (un paio di milione di volte), anche in ottica di performance, ho pensato a questo:codice:class Info: def __init__(self, actions, key): self.key = key self.regret = {} self.actions = [] for (action, size) in actions: self.actions.append((action, size)) self.regret[action, size] = 0 self.num_acts = len(self.actions) # Inizializzazione d'esempio i1 = Info([('left', 100), ('right', 0), ('up', 40)], 'first') i2 = Info([('down', 20), ('down', 50)], 'second')
1 creare un enum:
Passare come argomento della classe qualcosa in questo modo:codice:enum Actions { LEFT = 100, RIGHT = 0, UP = 40, DOWN_20 = 20, DOWN_50 = 50 }
Ciclare il tutto e gestire l'array self.regret e self.actions con std::vector.codice:Actions act[] = {LEFT, RIGHT, UP}; Info info(*act, "first");
Secondo voi è ok o ci sono soluzioni molto più ottimali/semplici?
Grazie

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando