Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like 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 

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!