Skip to content
Related Articles

Related Articles

Improve Article

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

  • Last Updated : 25 Aug, 2021

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 specifies 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:






    // 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;
    }
    Output:
    10
    

    Program-2:




    // 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;
    }
    Output:
    20
    

    Program-3:




    // 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;
    }
    Output:
    15
    

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

    Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.



    My Personal Notes arrow_drop_up
Recommended Articles
Page :