请求在"m"中的成员'find',这是非类类型的'int'



获取错误/code/Solution.cpp:8:14: error: request for member 'find' in 'm', which is of non-class type 'int' if(m.find(s)!=m.end())return;

我还试图将undered_map的位置更改为类外,但仍然得到同样的错误。

class Solution {
public:
int maxsum;
unordered_map<string,int>m;
void solve(int m,vector<int>a,int sum,int i){
string s = to_string(sum)+" "+to_string(i);
if(m.find(s)!=m.end())return;
m[s]++;
if(i==a.size())return;
if(sum+a[i]<m){maxsum=max(maxsum,sum+a[i]);
solve(m,a,sum+a[i],i+1);}
solve(m,a,sum,i+1);
}
int backPack(int m, vector<int> &a) {
// write your code here
maxsum=0;
solve(m,a,0,0);
return maxsum;
}
};
您调用了映射类变量m和第一个函数参数m。该参数会隐藏类变量,因此编译器会看到它。

您应该尽量避免对从同一范围内可以看到的多个变量使用相同的名称,在使用时,您可能希望使用更有意义的名称,而不仅仅是使用单个字母,以使代码更具可读性。

最新更新