首页 > 解决方案 > 错误:控制到达非空函数的结尾 [-Werror=return-type]

问题描述

当我运行以下代码时,我遇到了一些来自 leetcode 的错误。

class Solution {
public:
    int findDuplicate(vector<int>& nums) {
        int n = nums.size();
        vector<int> dp(n, 0);
        for(auto num:nums)
            if(dp[num]==1)
                return num;
            else
                dp[num]++;
    }
};

solution.cpp:在成员函数 findDuplicate

第 5 行:字符 28:错误:控制到达非 void 函数的结尾 [-Werror=return-type]

vector<int> dp(n, 0);
                        ^

cc1plus:一些警告被视为错误

我之前在其他一些问题中遇到了同样的错误,感谢您的帮助。

标签: c++

解决方案


您已声明findDuplicate返回一个int.

如果dp[num]==1永远不会为真,那么您的函数不会返回int. 在这种情况下,您的程序的行为是未定义的。


推荐阅读