Bonjour,
Ce code doit compiler. Sauf si l'une des deux constantes n'est pas déclaré. Ou si <vector> n'est pas inclue.
Pour ta première question, le vector n'est en effet pas optimum dans le cas d'un tableau de taille connue a la compilation. Pour ca il y a boost::array (qui fait aussi parti du tr1):
boost::array<boost::array<int, MAP_WIDTH>, MAP_HEIGHT> m_mapVec;
Ou mieux, le boost::multiarray.
Après, l'utilisation d'un tableau C-style dans ce cas me semble tolérable, a condition de savoir gérer proprement les copies et construction(attention, c'est un pointeur). Par contre son interface n'est pas celui d'un conteneur STL-like, ce qui fait que tu aurais des conteneurs avec une interface différentes, ce qui peut nuire légèrement a la cohérence globale du code.
Autrement dit, je suis quand même plus pour le array, ou multiarray.
Partager