J'essaie d'optimiser le code suivant pour éviter d'avoir à copier et coller et utiliser correctement SlaveForce et SlavePos, qui sont de type float [6], et baseForce et basePos sont de type vectoriel:Optimisation de manipulation de vecteurs C++
typedef struct _NodeCoord
{
float coords[6];
} NodeCoord;
int main()
{
...
memcpy(tempNodeCoord.coords, SlaveForce, 6*sizeof(float));
baseForce.push_back(tempNodeCoord);
memcpy(tempNodeCoord.coords, SlavePos, 6*sizeof(float));
basePos.push_back(tempNodeCoord);
...
}
J'ai essayé quelques codes de test. Seul ce travail semble:
std::vector<NodeCoord> tallon;
NodeCoord m;
memset(m.coords, 0, sizeof(m.coords));
tallon.push_back(m);
alors que c'est le long des lignes de ce que je veux accomplir, mais il ne fonctionne pas:
std::vector<float[6]> ed;
float e[6];
tallon.push_back(e);
J'ai aussi essayé d'écrire un « typedef float [6 ] Mon type;" ligne avant la fonction principale, mais cela ne fonctionne pas bien non plus. Y at-il quelque chose que je peux faire pour éliminer les appels de fonction memcpy (ou plutôt push_back les variables float [6] directement)? Merci d'avance.
Quelle serait la différence entre utiliser un autre vecteur et encapsuler le tableau dans une structure (qu'est-ce que je fais déjà)? – stanigator
Le tableau enveloppé sera probablement plus rapide, mais moins flexible - par exemple, vous ne pouvez pas trouver combien de choses sont réellement dans un tableau. –
Est-ce que je ne peux pas utiliser sizeof (array)/sizeof (element) pour connaître le nombre d'éléments dans le tableau? – stanigator