получить ошибку при объявлении вектора вектора - PullRequest
0 голосов
/ 02 мая 2019

Это неправильный метод объявления вектора вектора

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 Ответ

1 голос
/ 02 мая 2019

Если вы хотите создать переменную-член, такую ​​как std::vector, с аргументами определения размера, вы можете использовать список инициализации члена конструктора Solution.

Для этого выследует удалить строку, сообщающую об ошибке, и вместо этого добавить конструктор по умолчанию в Solution, чтобы можно было инициализировать элементы:

class Solution
{
   //...
   Solution() : visited(100, std::vector<bool>(100,false)), nr(0), nc(0) {}
   //...
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...