I ont une structure et une fonction Polygon
avec la signature suivanteComment améliorer une structure stockant de nombreux résultats?
Polygon myfunction(Polygon &pol1, Polygon &pol2, int rot1, int rot2);
dans lequel pol1 et pol2 sont Polygon
s, rot1 et rot2 sont appliqués à rotation pol1 et pol2.
Je dois stocker tous les résultats de myfunction
appliqués à un ensemble de polygones et un ensemble de rotations admissibles. Par exemple, si j'ai 100 polygones et 4 rotations admissibles, j'ai besoin de stocker 100 * 100 * 4 * 4 = 160000 polygones. Je sais que j'ai besoin de beaucoup de mémoire, mais je suis d'accord.
Pour le moment, je les stocker dans un récipient comme:
vector<vector<vector<vector<Polygon>> results;
afin que l'appel results[pol1][pol2][rot1][rot2];
je reçois le polygone droit.
Je sais que l'accès à un seul résultat peut être très inefficace, alors comment puis-je l'améliorer?
Bonne solution! Je vous remercie. – 888
Puisqu'il n'y a que 4 rotations, je dirais qu'il serait préférable de ne pas les inclure comme des clés de carte, mais plutôt comme des index. Par exemple, pour chaque combinaison de deux rotations, il pourrait y avoir une carte, en utilisant une paire de polygones comme clé. –
@ Zyx2000 Merci pour la suggestion, mais 4 était juste un exemple. Il pourrait y avoir beaucoup plus de rotations. – 888