我正在尝试使用我正在编写的数独拼图解算器的向量向量.
问题1:
如果我要通过索引访问我的2d向量,我是否必须先用适当的大小初始化它?
例如:
typedef vector<vector<int> > array2d_t;
void readAPuzzle(array2d_t grid)
{
for(int i = 0; i < 9; i++)
for(int j = 0; j < 9; j++)
cin >> grid[i][j];
return;
}
int main()
{
array2d_t grid;
readAPuzzle(grid);
}
Run Code Online (Sandbox Code Playgroud)
将seg故障.我认为这是因为它试图访问尚未初始化的网格元素?
我换了网格的声明行:
array2d_t grid(9, vector<int>(9, 0));
Run Code Online (Sandbox Code Playgroud)
这似乎摆脱了这个段错误.这是处理它的正确方法吗?
问题2:
为什么当我尝试从cin读入我的网格,然后打印出网格时,网格是空白的?
我正在使用以下代码执行此操作:
void printGrid(array2d_t grid)
{
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
cout << grid[i][j] + " "; …Run Code Online (Sandbox Code Playgroud)