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:
// 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
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.