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

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日

悬赏问题

  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作