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

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.
```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 ``#include ``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 ``#include ``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 ``#include ``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
```

My Personal Notes arrow_drop_up