boost::algorithm::clamp() in C++ library

The clamp() function in C++ boost library is found under the header ‘boost/algorithm/clamp.hpp’ contains two functions for “clamping” a value between a pair of boundary values.

Syntax:

const T& clamp ( const T& val, const T& lo, const T& hi )
or 
const T& clamp ( const T& value, const T& low, const T& high, Pred p )

Parameters: The function accepts parameters as described below:

  • value: This speifies the value compared to.
  • low: This specifies the lower range.
    • high: This specifies the higher range.
    • p: This specifies the predicate function.

    Return Value: The function returns three values as described below:

    • It returns low if value is less than low.
    • It returns high if high is greater than value.
    • In all other cases, it returns value.

    Program-1:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C++ program to implement the
    // above mentioned function
      
    #include <bits/stdc++.h>
    #include <boost/algorithm/clamp.hpp>
    using namespace std;
      
    // Drivers code
    int main()
    {
      
        int value = 5;
        int low = 10, high = 20;
      
        // Function used
        int ans
            = boost::algorithm::clamp(value, low, high);
      
        cout << ans;
        return 0;
    }

    chevron_right

    
    

    Output:

    10
    

    Program-2:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C++ program to implement the
    // above mentioned function
      
    #include <bits/stdc++.h>
    #include <boost/algorithm/clamp.hpp>
    using namespace std;
      
    // Drivers code
    int main()
    {
      
        int value = 25;
        int low = 10, high = 20;
      
        // Function used
        int ans
            = boost::algorithm::clamp(value, low, high);
        cout << ans;
        return 0;
    }

    chevron_right

    
    

    Output:

    20
    

    Program-3:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C++ program to implement the
    // above mentioned function
      
    #include <bits/stdc++.h>
    #include <boost/algorithm/clamp.hpp>
    using namespace std;
      
    // Drivers code
    int main()
    {
      
        int value = 15;
        int low = 10, high = 20;
      
        // Function used
        int ans
            = boost::algorithm::clamp(value, low, high);
        cout << ans;
        return 0;
    }

    chevron_right

    
    

    Output:

    15
    

    Reference: https://www.boost.org/doc/libs/1_70_0/libs/algorithm/doc/html/the_boost_algorithm_library/CXX14/mismatch.html



    My Personal Notes arrow_drop_up

    The function of education is to teach one to think intensively and to think critically

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




    Article Tags :
    Practice Tags :


    Be the First to upvote.


    Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.