C++ 如何搜索向量并获得元素在c+中的位置+;? int搜索(向量和数字,int numtofId){ int numberSize=numbers.size(); for(int i=0;i
我的函数search应该在一个向量中搜索numToFind,如果找到它,它将返回位置。但是,当我运行这个函数时,它总是给我-1。您返回-1太早了。您的函数甚至不搜索向量的其余部分C++ 如何搜索向量并获得元素在c+中的位置+;? int搜索(向量和数字,int numtofId){ int numberSize=numbers.size(); for(int i=0;i,c++,C++,我的函数search应该在一个向量中搜索numToFind,如果找到它,它将返回位置。但是,当我运行这个函数时,它总是给我-1。您返回-1太早了。您的函数甚至不搜索向量的其余部分 int search(vector<int>& numbers, int numToFind){ int numberSize = numbers.size(); for (int i = 0; i < numberSize; i++){ if(numbers.
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;
}
}
}
int搜索(std::vector&numbers,int numtofId){
int numberSize=numbers.size();
for(int i=0;i
如果需要基于一的索引,请返回
i+1
。它们是否已排序<代码>标准::二进制搜索。否则,std::find
。没有理由自己编写代码。但至少要使向量常数。你不能修改它。它们是未排序的,例如3109250。什么是“狐狸”?看起来你应该改为比较'numToFind'。我明白为什么我不应该在这么早的时候就得到返回-1,因为它只比较向量的第一个值。至于确定-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
}