声明向量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(){
}
答案 0 :(得分:1)
如果要使用大小调整参数构造诸如std::vector
之类的成员变量,则您可以使用Solution
构造函数的成员初始化列表。
为此,您应该删除出现错误的行,并向Solution
添加默认构造函数,以便可以初始化成员:
class Solution
{
//...
Solution() : visited(100, std::vector<bool>(100,false)), nr(0), nc(0) {}
//...
};