Py小郑 2022-05-14 12:54 采纳率: 96.6%
浏览 67
已结题

C++有关函数返回的报错


vector<int> twoSum(vector<int>& numbers, int target) {
        vector<int> ans;
      
        int len = numbers.size();
        for (int index2 = 1;index2<len;index2++)
        {
            int t = target-numbers[index2],a = 0,b = index2-1;
            int index1 = find(numbers,a,b,t);
            if (index1>=0)
            {
                ans.push_back(index1+1);
                ans.push_back(index2+1);
                //return ans;
            }
        }
      return ans;

    }

已经确保ans是非空,那么为什么最后一句return ans不能写在注释处?
如果写了会报 error: non-void function does not return a value in all control paths [-Werror,-Wreturn-type]
}

  • 写回答

1条回答 默认 最新

  • 浪客 2022-05-14 14:34
    关注

    如果写到注释处,如果number是空的,那么函数就没有返回值了。
    你能确保ans非空,但是编译器编译的时候无法知晓是否为空,他要考虑所有的可能性。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月22日
  • 已采纳回答 5月14日
  • 创建了问题 5月14日