lower_bound - бинарно търсене
Моля за малко разяснение (код от лекцията за STL Algorithms ). Koга се влиза в първия else, нали когато it != nums.end() означава, че searchNum е намерен; и searchNum е == *it . Какво изключение хваща първия else?
vector<int> nums { 41, 45, 61, 231, 764 };
int searchNum = 62;
auto it = lower_bound(nums.begin(), nums.end(), searchNum);
if (it != nums.end()) {
if (searchNum == *it) {
cout << "found " << *it << " at " << it - nums.begin() << endl;
} else {
cout << searchNum << " can be inserted at " << it - nums.begin()
<< " and the numbers will remain sorted"<< endl;
}
} else {
cout << "not in range" << endl;
}
Благодаря!!