int search(vector<int>& numbers, int numToFind){
int numberSize = numbers.size();
for (int i = 0; i < numberSize; i++){
if(numbers.at(i) == numToFind){
return i;
}
else{
return -1;
}
}
}
我的函数搜索应该通过numToFind的向量搜索,如果找到它,它将返回位置。但是,当我运行这个函数时,它一直给我-1。
答案 0 :(得分:5)
你太早回来了-1。您的函数甚至不会搜索向量的其余部分。
int search(std::vector<int>& numbers, int numToFind){
int numberSize = numbers.size();
for (int i = 0; i < numberSize; i++){
if(numbers.at(i) == numToFind){
return i;
}
// A return statement here would cut the loop too early
}
return -1; // Didn't find anything
}
如果您想要基于一个索引,请改为返回i + 1
。