Inserting values to a multidimensional-vector in C++

末鹿安然 提交于 2019-12-13 21:14:09

问题


I've got a minor problem.

I'm using multidimensional-vectors and I want to insert some values to it at a given position. I'm making a sudoku in wxWidgets and i'm getting the tiles the player have put in and wanting to store them in my mVector.

The mVector looks like this.

vector< vector<string> > board{9, vector<string>(9)};

And at first i've added values just like this.

board[row][col] = value;

"value" is a string and row/col are ints.

Is this a legit way of adding values to the mVector? I'm asking this because when I update the board, by doing this above, I for some reason can't run my other functions where i'm solving the board, giving a hint to the board and so on. Before i store the new values to it all the functions works correkt. Do I maby need to use some other type of build in functions for the vector like insert, push_back or something instead?


回答1:


Since you declared the vector as size 9x9, yes that is a valid way of assigning values.

Otherwise you could declare the board as

vector<vector<string>> board;

Then fill it with

for (int i = 0; i < 9; ++i)
{
    vector<string> row;
    for (int j = 0; j < 9; ++j)
    {
        row.push_back(value);  // where value is whatever you want
    }
    board.push_back(row);
}

But again, once the board is of size 9x9, you can simply assign a value at any cell for example

board[2][4] = "hello";

Working example



来源:https://stackoverflow.com/questions/27742392/inserting-values-to-a-multidimensional-vector-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!