C++ 如何对二维向量i,j施加条件

C++ 如何对二维向量i,j施加条件,c++,vector,compiler-errors,operators,2d-vector,C++,Vector,Compiler Errors,Operators,2d Vector,我试图写一个BFS代码,我无法理解这个错误。为什么我不能简单地使用 访问[i][j]==1 int numIslands(vector<vector<char>>& grid) { int n = grid.size(); int m = grid[0].size(); vector<vector<int>> vis for (int i = 0; i < n; i++) {

我试图写一个BFS代码,我无法理解这个错误。为什么我不能简单地使用 访问[i][j]==1

int numIslands(vector<vector<char>>& grid) 
{
    int n = grid.size();
    int m = grid[0].size();
    vector<vector<int>> vis
    for (int i = 0; i < n; i++)
    {
        vector<int>v;
        for (int j = 0; j < m; j++)
        {
            v.push_back(0);
        }
        vis.push_back(v);
    }
    int count = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if ((vis[i][j] == 0) && (grid[i][j] == '1'))
            {
                bfs(grid, vis, i, j);
                count++;
            }
        }
    }
    return count;
}

};
int numIslands(矢量和栅格)
{
int n=grid.size();
int m=网格[0]。大小();
向量可视
对于(int i=0;i
字符22:错误:“运算符==”不匹配(操作数类型为“\uu gnu\u cxx::\uu alloc\u traits>,std::vector>::值类型“{aka'std::vector'}和“int”)
如果((vis[i][j]==0)和(&(grid[i][j]==1'))

像@user4581301在评论中说的那样,那么这里的主要问题是语法相关的

向量vis
需要一个尾随分号:
向量vis和最后一行,
},不应该存在,至少没有周围
类的上下文或类似定义

这是一个编译:

int numIslands(vector<vector<char>>& grid) {
    int n = grid.size();
    int m = grid[0].size();
    vector<vector<int>> vis;
    for(int i = 0; i < n; i++) {
        vector<int> v;
        for(int j = 0; j < m; j++) {
            v.push_back(0);
        }
        vis.push_back(v);
    }
    int count = 0;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            if((vis[i][j] == 0) && (grid[i][j] == '1')) {
                bfs(grid, vis, i, j);
                count++;
            }
        }
    }
    return count;
}
int numIslands(矢量和栅格){
int n=grid.size();
int m=网格[0]。大小();
矢量视觉;
对于(int i=0;i

我们不知道您对
bfs(std::vector&,std::vector,int,int)
函数的定义。您还缺少使此语法可行所需的
使用命名空间std
。如果没有它们,此代码段将无法编译

vector vis
缺少分号,此函数中的括号未对齐。如果这些是将代码转录到问题中的拼写错误,请修复它们。如果它们是源代码中的错误,请修复它们,看看你是否还有问题。我读了你的评论,你是对的。我最初误读了代码,我编辑了我的帖子,让我知道它是否有任何问题。请再次检查。