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++ 库中有任何内置的钳位方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

有比较两个迭代器的内置方法吗?

gstreamer 中有内置语音吗?

python中有内置的身份函数吗?

是否有符合标准的方法来检测 C 标准库中的函数是否通过内部/内置实现?

存在同名模块时从内置库导入

你真的会TVS二极管选型吗