template <typename T>
SearchResultType<T> recursive_binary_search(const std::vector<T> &list,const T &value){
long int low = 0;
long int high = list.size() - 1;
long int mid = low + (high - low) / 2;
if (low != high) {
if (value < list[mid]) {
std::vector<T> sub(&list[low], &list[mid - 1]);
return recursive_binary_search(sub, value);
}
else if (value > list[mid]) {
std::vector<T> sub(&list[mid + 1], &list[high]);
return recursive_binary_search(sub, value);
}
else if (value == list[mid]) {
return SearchResultType<T>(true, value, mid);
}
}
else {
return SearchResultType<T>(false, list[mid], mid);
}
}
当我使用此代码搜索向量中的字符串时,它会陷入无限循环。任何想法为什么会卡住?