lower bound c++ for array in decreasing order

C++
// CPP program to demonstrate working of lower_bound() 
// and upper_bound() for array sorted in non-decreasing 
// array, 
#include <algorithm> 
#include <iostream> 
#include <vector> 
  
int main() 
{ 
    int unsorted[10] = { 3, 3, 2, 1, 5, 5, 4, 3, 7, 8 }; 
    std::vector<int> v(unsorted, unsorted + 10); 
  
    // sorting vector in non increasing order. Vector 
    // becomes {8, 7, 5, 5, 4, 3, 3, 3, 2, 1} 
    std::sort(v.begin(), v.end(), std::greater<int>()); 
  
    std::vector<int>::iterator low, up; 
    low = std::lower_bound(v.begin(), v.end(), 3, std::greater<int>());          
    up = std::upper_bound(v.begin(), v.end(), 5, std::greater<int>());           
  
    std::cout << "lower_bound at position " << (low - v.begin()) << '\n'; 
    std::cout << "upper_bound at position " << (up - v.begin()) << '\n'; 
  
    return 0; 
} 

Source

Also in C++: