Bonjour,
est il possible de manipuler un tableau multi dimension comme s'il s'agissait d'un tableau 1 dimension ?
Bonjour,
est il possible de manipuler un tableau multi dimension comme s'il s'agissait d'un tableau 1 dimension ?
Oui, il suffit de trouver une fonction qui fait le passage entre les dimensions.
Exemple pour tableau de taille N_X x N_Y :
Exemple pour tableau de taille N_X x N_Y x N_Z :
Code : Sélectionner tout - Visualiser dans une fenêtre à part index(x, y) = x * N_Y + y
La manière de calculer l'index peut avoir un impact direct sur les performances. Avec le premier exemple, si on fait varier x avec y constant, on aura plus de chance de faire des cache-miss car on va faire des sauts de N_Y (fois la taille de la données enregistrée en octets) dans la mémoire. La manière de traduire l'index selon l'utilisation qui en est faite est donc importante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part index(x, y, z) = (x * N_Y + y) * N_Z + z
Le plus simple, c'est d'avoir un tableau mono-dimensionnel et de lui adjoindre une API multi-dimensionnel via une encapsulation dans une classe, type matrice ou tenser par exemple.
Bonjour, à mon avis l'utilisation d'une map sera plus efficace. Tu a toujours une très bonne image qui vas te permettre de choisir un conteneur adapté à tes besoins.
![]()
N'hésitez pas à consulter le site http://cppreference.com/ ou encore la faq c++ ici
Partager