Je veux créer une grille 2D vraiment facile à utiliser. Chaque cellule de la grille doit être capable de stocker une charge de données. Idéalement, je voudrais être capable de traverser la grille une cellule à la fois, ainsi que d'obtenir les voisins immédiats de l'une des cellules de la grille. Ma première pensée a été de stocker un vecteur de pointeurs sur les voisins d'une cellule (4 au total), puis de créer des fonctions de commodité pour leftNeighbour, rightNeighbour, etc. Raccorder la grille après l'initialisation. Le std :: vector est supposé être un tableau dynamiquement redimensionnable, ce qui me semble plutôt inutile si je ne fais que coder en dur les positions des pointeurs (0 == left, 1 == right , etc). Cependant, cela permet une meilleure façon de parcourir les voisins d'une cellule. L'autre chose que je dois considérer est si la cellule est sur une frontière avec le bord de la grille (si pour tester ceci ou simplement étendre implicitement la grille par une cellule de sorte que ceci n'arrivera jamais).Comment créer une grille 2D efficace en C++?
Quelqu'un peut-il suggérer une meilleure alternative, ou est-ce que cela sonne comme un design raisonnable?
Merci, Dan
une chose que je ne comprends pas: pourquoi renvoyez-vous de nouveaux itérateurs pour gauche, droite, etc et cela pour ++ et -? – fho