vector<int> vec = {2,4,3};
vector<int>::iterator it;
it=lower_bound(vec.begin(),vec.end(),3);
cout<<*it;
Это возвращает результат 4, а не 3, а
vector<int> vec = {2,3,4};
vector<int>::iterator it;
it=lower_bound(vec.begin(),vec.end(),3);
cout<<*it;
Но это возвращает правильный вывод 3. Пожалуйста, помогите мне понять, почему он не работает в угловом случае.