tags:

views:

31

answers:

1

I have been trying to create a 2D array of vector for a game. Here is an example of what I am doing.

struct TILE {
    int a;
    char b;
    bool c;
};

TILE temp_tile;

std::vector<TILE> temp_vec_tile;
std::vector<std::vector<TILE>> tile;


for (int x = 0; x < 10; x++) {
    for (int y = 0; y < 10; y++) {

    temp_tile.a = x;
    temp_tile.b = "a";
    temp_tile.c = false;;

    temp_vec_tile.push_back(temp_tile);
    }

    tile.push_back(temp_vec_tile);
}

// Why does this not work?
int x = tile[3][5].a;

Note: I don't want to use Boost for this.

Thanks

A: 

You are not clearing the internal vector each time. Probably what you want is to put the internal vector declaration inside of the first for loop.

Brian R. Bondy
Thank you, that did the trick!