在 C++ 中将值插入多维向量
Inserting values to a multidimensional-vector in C++
我有一个小问题。
我正在使用多维向量,我想在给定位置插入一些值。我正在 wxWidgets 中制作数独,我正在获取玩家放入的图块并希望将它们存储在我的 mVector 中。
mVector 看起来像这样。
vector< vector<string> > board{9, vector<string>(9)};
起初我是这样添加值的。
board[row][col] = value;
"value" 是字符串,row/col 是整数。
这是向 mVector 添加值的合法方法吗?我问这个是因为当我更新电路板时,通过上面的操作,我出于某种原因无法运行我正在解决电路板的其他功能,给电路板提示等等。在我将新值存储到它之前,所有功能都可以正常工作。我是否可能需要为向量使用其他类型的内置函数,如插入、push_back 或其他东西?
由于您将向量声明为大小 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";
我有一个小问题。
我正在使用多维向量,我想在给定位置插入一些值。我正在 wxWidgets 中制作数独,我正在获取玩家放入的图块并希望将它们存储在我的 mVector 中。
mVector 看起来像这样。
vector< vector<string> > board{9, vector<string>(9)};
起初我是这样添加值的。
board[row][col] = value;
"value" 是字符串,row/col 是整数。
这是向 mVector 添加值的合法方法吗?我问这个是因为当我更新电路板时,通过上面的操作,我出于某种原因无法运行我正在解决电路板的其他功能,给电路板提示等等。在我将新值存储到它之前,所有功能都可以正常工作。我是否可能需要为向量使用其他类型的内置函数,如插入、push_back 或其他东西?
由于您将向量声明为大小 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";