C ++ Deux dimensions std :: meilleures pratiques vectorielles

Je suis la création d'une application qui a besoin d'un support pour les deux dimensions des tableaux de tenir une grille de données. J'ai une classe Map qui contient une grille 2d de données. Je veux utiliser des vecteurs plutôt que les tableaux, et je me demandais quelles sont les meilleures pratiques pour l'utilisation de vecteurs 2d. Si j'ai un vecteur de vecteurs de MapCells? ou devrait-il être un vecteur de vecteurs de pointeurs pour MapCells? ou des références à d'MapCells?

class Map {
private:
    vector<vector<MapCell>> cells;

public:
    void loadMap() {
        cells.clear();
        for (int i = 0; i < WIDTH; i++) {
            //How should I be allocating these?
            vector<MapCell> row(HEIGHT);
            for (int j = 0; j < HEIGHT; j++) {
                //Should I be dynamically allocating these?
                MapCell cell;
                row.push_back(cell);
            }
            cells.push_back(row);
        }
    }
}

Fondamentalement, ce que cela va me faire le moins de problèmes (à l'égard de la gestion de la mémoire ou quoi que ce soit d'autre)?

source d'informationauteur goatlinks