J'ai un petit dilemme.
std::map<myClass, int> myMap;
void Distribute(){
float pool = 50;
int receivers = 0;
for(auto i = myMap.begin(); i != myMap.end(); i++){
if(i->second == 1) receivers++;
}
float distribution = pool/receivers;
for(auto i = myMap.begin(); i!= myMap.end; i++){
if(i->second == 0)continue;
i->first.value = distribution;
}
}
En gros, ce que j'essaie de faire, c'est de trouver la taille totale de la carte, moins les éléments dont les valeurs cartographiées sont égales à 0. Ensuite, je veux refaire une boucle sur la même carte, mais envoyer des valeurs à chaque entrée en utilisant les données que j'ai recueillies lors de la dernière boucle for.
Cela semble vraiment laid et inefficace. Il doit bien y avoir un moyen de gérer tout cela dans une seule boucle for ? Ou peut-être que la première boucle for ne serait idéalement pas nécessaire ? Je ne suis pas contre le travail supplémentaire, mais je ne peux pas m'empêcher de penser que j'écris du code moche ici, j'aimerais vraiment avoir un avis.