C++ 库中有任何内置的钳位方法吗?
Posted
技术标签:
【中文标题】C++ 库中有任何内置的钳位方法吗?【英文标题】:Any builtin clamp method in the C++ library? 【发布时间】:2014-05-08 17:39:06 【问题描述】:我想知道是否有一些内置的钳位方法可以将一个值钳位在一个范围之间,比如在 (0,1) 之间?
clamp(a) = a if a is in (0,1)
a < 0 a = 0
a > 1 a = 1
【问题讨论】:
我不知道,但这是一个std::max
和一个std::min
电话。
【参考方案1】:
C++17 引入了std::clamp()
。现在你不需要实现你自己的了。只需使用std::clamp(a, 0.0, 1.0)
如果您没有 C++17 但可以选择 boost,则使用 boost::algorithm::clamp(n, lower, upper);
相关:
What are the new features in C++17? Most efficient/elegant way to clip a number? Limit integer to bounds【讨论】:
【参考方案2】:C++ 没有内置的钳位函数。您可以实现自己的,或者如果您碰巧使用boost,它有一个clamp function。
【讨论】:
以上是关于C++ 库中有任何内置的钳位方法吗?的主要内容,如果未能解决你的问题,请参考以下文章