Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use lower_bound(upper_bound) to find position of any number in array?

For example, I have an array with elements 1,7,9,23,34,47,67,89,123,234,345,567. I need to know the position of 123.

like image 637
Nodar Maruashvili Avatar asked Feb 05 '23 16:02

Nodar Maruashvili


1 Answers

Declare and initialize the array with the elements. Then create a vector of ints. Use upper_bound() on the vector. Here is an example:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

int main() {
    int arr[] = {1,7,9,23,34,47,67,89,123,234,345,567};
    int len = sizeof(arr)/sizeof(arr[0]);
    vector<int> v(arr,arr+len);

    vector<int>::iterator upper;
    upper = upper_bound(v.begin(), v.end(), 123);
    cout<<(upper-v.begin())<<endl;  // Output: 9

    return 0;
}

Hope it helps!!

like image 118
User_Targaryen Avatar answered Feb 08 '23 06:02

User_Targaryen