小编Sal*_*ban的帖子

如何在C++中使用嵌套向量?

我正在尝试使用我正在编写的数独拼图解算器的向量向量.

问题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)

c++ vector

6
推荐指数
1
解决办法
8067
查看次数

标签 统计

c++ ×1

vector ×1