std::clamp是C++标准库中的一个函数模板,用于限制给定值的范围在指定的上下限之间。其所在头文件为,并且自C++17起可用。
std::clamp函数接受三个参数:要限制的值v,下限lo和上限hi。如果v小于lo,则返回lo;如果v大于hi,则返回hi;否则返回v本身。因此,该函数确保返回的值始终在[lo, hi]的范围内。
以下是一个使用std::clamp函数的简单示例:
cpp
#include <algorithm>
#include <iostream>
int main() {
int i = 3;
int j = 6;
int k =10;
int minValue = 5;
int maxValue = 7;
int iClamped = std::clamp(i, minValue, maxValue);
int jClamped = std::clamp(j, minValue, maxValue);
int kClamped = std::clamp(k, minValue, maxValue);
std::cout << "Clamped value: " << "\n" << iClamped << "\n" << jClamped << "\n" << kClamped << std::endl;
return 0;
}
运行结果
Clamped value:
5
6
7
例子中,分别尝试将值3,6,10限制在5和7之间。以10为例,由于10大于7,因此std::clamp返回7,并将7赋值给kClamped ,然后输出这个限制后的值。
总的来说,std::clamp函数用于确保值始终保持在预期的范围内,从而避免可能的错误或越界情况。