Related Articles

# upper_bound and lower_bound for non increasing vector in c++

• Difficulty Level : Easy
• Last Updated : 20 May, 2020

The lower_bound() and upper_bound() functions, by default works on non-decreasing array. The lower_bound() function finds iterator of first element that does not compare less to given element. The upper_bound() function returns iterator to the first element that is greater.

Given an array converting this to a non-increasing vector, applying the std:: upper_bound and std:: lower_bound function to the vector

For array sorted in a non-increasing array, lower_bound() finds iterator to the first element that does not compare greater than to given element. upper_bound() finds iterator to the first element that is smaller than the given element. We use greater() for this purpose.

 `// C++ program to demonstrate the working of lower_bound()``// and upper_bound() for array sorted in non-decreasing``// array,``#include ``#include ``#include `` ` `int` `main()``{``    ``int` `unsorted[10] = { 3, 3, 2, 1, 5, 5, 4, 3, 7, 8 };``    ``std::vector<``int``> v(unsorted, unsorted + 10);`` ` `    ``// sorting vector in non increasing order. Vector``    ``// becomes {8, 7, 5, 5, 4, 3, 3, 3, 2, 1}``    ``std::sort(v.begin(), v.end(), std::greater<``int``>());`` ` `    ``std::vector<``int``>::iterator low, up;``    ``low = std::lower_bound(v.begin(), v.end(), 3, std::greater<``int``>());         ``    ``up = std::upper_bound(v.begin(), v.end(), 5, std::greater<``int``>());          `` ` `    ``std::cout << ``"lower_bound at position "` `<< (low - v.begin()) << ``'\n'``;``    ``std::cout << ``"upper_bound at position "` `<< (up - v.begin()) << ``'\n'``;`` ` `    ``return` `0;``}`
Output:
```lower_bound at position 5
upper_bound at position 4
```
Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
My Personal Notes arrow_drop_up