std::upper_bound and std::lower_bound for Vector in C++ STL

• Difficulty Level : Easy
• Last Updated : 28 Jun, 2021

Vector – upper_bound and lower_bound

Iterator lower_bound (Iterator first, Iterator last, const val)
Iterator upper_bound (Iterator first, Iterator last, const val)
lower_bound returns an iterator pointing to the first element in the range [first,last) which has a value not less than ‘val’.
upper_bound returns an iterator pointing to the first element in the range [first,last) which has a value greater than ‘val’.

CPP

 // lower_bound and upper_bound in vector #include // for lower_bound, upper_bound and sort #include #include // for vector   using namespace std;   int main() {     int gfg[] = { 5, 6, 7, 7, 6, 5, 5, 6 };       vector v(gfg, gfg + 8); // 5 6 7 7 6 5 5 6       sort(v.begin(), v.end()); // 5 5 5 6 6 6 7 7       vector::iterator lower, upper;     lower = lower_bound(v.begin(), v.end(), 6);     upper = upper_bound(v.begin(), v.end(), 6);       cout << "lower_bound for 6 at position "          << (lower - v.begin() + 1) << '\n';     cout << "upper_bound for 6 at position "          << (upper - v.begin() + 1) << '\n';       return 0; }

Output :

lower_bound for 6 at position 4
upper_bound for 6 at position 7