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