C++ STL lower_bound

Suppose I have a vector, vector<int>v = {1,3,5,7} and I do lower bound like auto itr = lower_bound(v.begin(),v.end(),8) so will it return the pointer to the end of the vector? or what will the output of it? cout<<(*itr) , If I am doing this cout, then the output is coming out to be 0, I know lower bound gives us >=. But got confused with this article where the element 55 is not even present and it is returning the iterator to the last element.

If lower bound returns element which is greater than or equal to , i.e >=, then why that article is giving the iterator to the last element?
What should be the output when v={1,3,5,7}, and we do lower bound with key=8?

Hi raghav
The article example is incorrect. Look at code below it.
It returns iterator index = 5 which is v.end(), which follows last element, and is not the last element.
v={1,3,5,7}, and we do lower bound with key=8,
itr will point to v.end() and *itr = 0.

Hope it helps :slight_smile:

I was thinking the same! Thank you! :smile:

No problem :slight_smile:
Do give a rating if satisfied