запрос на член 'find' в 'm', который имеет тип non-class 'int' - PullRequest
0 голосов
/ 27 апреля 2020

получая ошибку /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;

Я также пытался изменить местоположение unordered_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;
    }
};

1 Ответ

1 голос
/ 27 апреля 2020

Вы вызвали как переменную класса карты m, так и первый параметр функции m. Параметр shadows переменная класса, поэтому ваш компилятор видит ее вместо этого.

Вы должны стараться избегать использования одного и того же имени для нескольких переменных, которые можно увидеть из одной и той же области, и пока вы Вы, возможно, захотите использовать более значимые имена вместо простых букв, чтобы сделать ваш код более читабельным.

...