声明向量的向量时出错

时间:2019-05-02 06:28:26

标签: c++ vector

声明向量vector的方法错误

vector<vector<bool>> visited(100, vector<bool>(100,false));

获取错误为:

 Line 5: Char 34: error: expected identifier before numeric constant
 vector<vector<bool>> visited(100, vector<bool>(100,false));

我在解决方案类的开头声明了它

在下面的程序中

#include<iostream>
#include<vector>
using namespace std;


class Solution {
public:
    int nr,nc;
    //vector<vector<bool>> visited(1000,vector<bool>(1000,false)) ;
    vector<vector<bool>> visited(100, vector<bool>(100,false));
    bool dfs(vector<vector<char>>& board,string word,int i,int j,int cr){
        visited[i][j]=true;
        if(cr==word.length())
            return true;
        if(cr>word.length())
            return false;
        if(j+1<nc && board[i][j+1]==word[cr] && !visted[i][j+1])
            return dfs(board,word,i,j+1,cr+1);
        if(j-1>=0 && board[i][j-1]==word[cr] && !visited[i][j-1])
            return dfs(board,word,i,j-1,cr+1);
        if(i+1<nr && board[i+1][j]==word[cr] && !visited[i+1][j])
            return dfs(board,word,i+1,j,cr+1);
        if(i-1>=0 && board[i-1][j]==word[cr] && !visited[i-1][j])
            return dfs(board,word,i-1,j,cr+1);
        return false;
    }
   bool dfs_help(vector<vector<char>> &board,string word){
       for(int i=0;i<board.size();i++){
            for(int j=0;j<board[0].size();j++){
                    visited[i][j]=false;
                }
            }
        }



       for(int i=0;i<board.size();i++){
            for(int j=0;j<board[0].size();j++){
                if(board[i][j]==word[0]){
                    visited[i][j]=true;
                    if(dfs(board,word,i,j,1))
                        return true;
                }
            }
        }
    return false;
    }
    vector<string> findWords(vector<vector<char>>& board, vector<string>& words) {
        nr = board.size();
        nc = board[0].size();
        vector<string> ans;
        for(string v : words){
            if(dfs_help(board,v))
                ans.push_back(v);
        }
        sort(ans.begin(),ans.end());
        return ans;
    }
};
int main(){

}

1 个答案:

答案 0 :(得分:1)

如果要使用大小调整参数构造诸如std::vector之类的成员变量,则您可以使用Solution构造函数的成员初始化列表。

为此,您应该删除出现错误的行,并向Solution添加默认构造函数,以便可以初始化成员:

class Solution
{
   //...
   Solution() : visited(100, std::vector<bool>(100,false)), nr(0), nc(0) {}
   //...
};