Skip to content
Related Articles

Related Articles

Improve Article

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

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

Click here for Set 1 and Set 2 of Vectors.   

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 <algorithm> // for lower_bound, upper_bound and sort
#include <iostream>
#include <vector> // for vector
 
using namespace std;
 
int main()
{
    int gfg[] = { 5, 6, 7, 7, 6, 5, 5, 6 };
 
    vector<int> 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<int>::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

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above 

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
Recommended Articles
Page :