// lower_bound/upper_bound example
#include <iostream> // std::cout
#include <algorithm> // std::lower_bound, std::upper_bound, std::sort
#include <vector> // std::vector
int main () {
int v[] = {10,20,30,30,20,10,10,20};
int n = 8;
//std::vector<int> v(myints,myints+8); // 10 20 30 30 20 10 10 20
std::sort (v, v+8); // 10 10 10 20 20 20 30 30
//std::vector<int>::iterator low,up;
//low=std::lower_bound (v.begin(), v.end(), 20); // ^
//up= std::upper_bound (v.begin(), v.end(), 20); // ^
int * p = std::upper_bound(v,v+n,20);
//std::cout << "lower_bound at position " << (low- v.begin()) << '\n';
//std::cout << "upper_bound at position " << (up - v.begin()) << '\n';
if( p == v + n )
std::cout << "No element greater";
else
std::cout << "The first element greater is " << *p
<< " at position " << p - v;
return 0;
}
Ly8gbG93ZXJfYm91bmQvdXBwZXJfYm91bmQgZXhhbXBsZQojaW5jbHVkZSA8aW9zdHJlYW0+ICAgICAvLyBzdGQ6OmNvdXQKI2luY2x1ZGUgPGFsZ29yaXRobT4gICAgLy8gc3RkOjpsb3dlcl9ib3VuZCwgc3RkOjp1cHBlcl9ib3VuZCwgc3RkOjpzb3J0CiNpbmNsdWRlIDx2ZWN0b3I+ICAgICAgIC8vIHN0ZDo6dmVjdG9yCgppbnQgbWFpbiAoKSB7CiAgaW50IHZbXSA9IHsxMCwyMCwzMCwzMCwyMCwxMCwxMCwyMH07CiAgaW50IG4gPSA4OwogIC8vc3RkOjp2ZWN0b3I8aW50PiB2KG15aW50cyxteWludHMrOCk7ICAgICAgICAgICAvLyAxMCAyMCAzMCAzMCAyMCAxMCAxMCAyMAoKICBzdGQ6OnNvcnQgKHYsIHYrOCk7ICAgICAgICAgICAgICAgIC8vIDEwIDEwIDEwIDIwIDIwIDIwIDMwIDMwCgogIC8vc3RkOjp2ZWN0b3I8aW50Pjo6aXRlcmF0b3IgbG93LHVwOwogIC8vbG93PXN0ZDo6bG93ZXJfYm91bmQgKHYuYmVnaW4oKSwgdi5lbmQoKSwgMjApOyAvLyAgICAgICAgIF4KICAvL3VwPSBzdGQ6OnVwcGVyX2JvdW5kICh2LmJlZ2luKCksIHYuZW5kKCksIDIwKTsgLy8gICAgICAgICAgICAgICAgICAgXgoJCglpbnQgKiBwID0gc3RkOjp1cHBlcl9ib3VuZCh2LHYrbiwyMCk7CgkKICAvL3N0ZDo6Y291dCA8PCAibG93ZXJfYm91bmQgYXQgcG9zaXRpb24gIiA8PCAobG93LSB2LmJlZ2luKCkpIDw8ICdcbic7CiAgLy9zdGQ6OmNvdXQgPDwgInVwcGVyX2JvdW5kIGF0IHBvc2l0aW9uICIgPDwgKHVwIC0gdi5iZWdpbigpKSA8PCAnXG4nOwppZiggcCA9PSB2ICsgbiApCiAgICAgc3RkOjpjb3V0IDw8ICJObyBlbGVtZW50IGdyZWF0ZXIiOwplbHNlCiAgICAgc3RkOjpjb3V0IDw8ICJUaGUgZmlyc3QgZWxlbWVudCBncmVhdGVyIGlzICIgPDwgKnAKICAgICAgICAgICAgICAgPDwgIiBhdCBwb3NpdGlvbiAiIDw8IHAgLSB2OwogIHJldHVybiAwOwp9