将一维向量转换为二维

Nic*_*kyP 1 c++ 2d vector tile

我有一个问题,我正在用 C++ 制作 RPG 游戏,这是我的问题:

我有一个一维向量,其中包含游戏中图块的“gid”元素,如下图所示:

https://i.stack.imgur.com/rrAc9.png

这个 1D 向量包含 400 个元素(我的地图是 20x20),我想将其转换为 2D 向量,这样我就可以创建一个图块网格......

我已经尝试过这个:

map_floor2D.resize(map_floor.size(), map_floor);
    for (int i = 0; i < map_floor2D.size(); i++)
    {
        for (int j = 0; j < map_floor2D[i].size(); i++)
        {
            cout << map_floor2D[i][j];
        }
    }
Run Code Online (Sandbox Code Playgroud)

map_floor是一维向量。 map_floor2D是二维向量

我怎样才能做到这一点?

Bla*_*mba 5

vector<int> map_floor1D;
vector<vector< int> > map_floor2D;
map_floor2D.resize(20);
for (int i = 0; i < 20; i++)
{
    map_floor2D[i].resize(20);
}
for (int i = 0; i < map_floor1D.size(); i++)
{
    int row = i / 20;
    int col = i %20;
    map_floor2D[row][col] = map_floor1D[i];
}
Run Code Online (Sandbox Code Playgroud)