J'ai trouvé que le paramètre I retourné est différent dans la fonction externe quand il est appelé que dans la fonction locale. Je mets un peu l'impression dans chaque section du code, mais ne sait toujours pas pourquoi le paramètre i n'est pas retourné:C++ retour à un résultat différent
int assign_cookie(vector<int>& g, vector<int>& s){
if(s.size()==0 || g.size()==0){
cout << "size = 0, returning 0" << endl;
return 0;
}
cout << "s.size() = " << s.size() << endl;
cout << "g.size() = " << g.size() << endl;
sort(g.begin(), g.end());
sort(s.begin(), s.end());
unsigned int i, j = 0;
while(i<g.size() && j<s.size()){
if(g[i]<=s[j]) i++;
j++;
}
cout << "(assign_cookie) i = " << i << endl;
return i;
}
quand je l'ai appelé dans la fonction principale comme suit:
int main(){
int g[] = {1,2,3};
int s[] = {1,1};
vector<int> vg (g, g+3);
vector<int> vs (s, s+2);
int result = assign_cookie(vg,vs);
cout << "result = " << result << endl;
}
I obtenu les résultats comme suit:
s.size() = 2
g.size() = 3
(assign_cookie) i = 1
(main) result = 0
J'ai été très confus avec le résultat. Quelqu'un a une idée de ce qui se passe? Merci d'avance pour votre aide!