2015-01-02 2 views
0

У меня есть небольшая проблема.Вставка значений в многомерный вектор в C++

Я использую многомерные векторы, и я хочу вставить в него некоторые значения в данной позиции. Я делаю судоку в wxWidgets, и я получаю плитки, которые игрок вложил и хочет сохранить их в моем mVector.

mVector выглядит следующим образом.

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

И сначала я добавил значения именно так.

board[row][col] = value; 

"value" - это строка и строка/col - ints.

Это законный способ добавления значений в mVector? Я спрашиваю об этом, потому что, когда я обновляю доску, делая это выше, я по какой-то причине не могу запускать свои другие функции, когда я решаю совет, давая подсказку доске и так далее. Прежде чем я буду хранить в нем новые значения, все функции работают с корректом. Нужно ли мне использовать какой-нибудь другой тип сборки для функций для вектора типа insert, push_back или что-то вместо этого?

ответ

2

Поскольку вы объявили вектор размером 9x9, да, это допустимый способ присвоения значений.

В противном случае вы можете объявить доску как

vector<vector<string>> board; 

Затем залейте его

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); 
} 

Но опять же, как только доска имеет размер 9x9, вы можете просто присвоить значение в любой ячейке для пример

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

Working example

Смежные вопросы