c ++是否有等效于Python的'in'关键字?

时间:2019-04-25 14:41:39

标签: c++

我正在尝试更清晰,紧凑地编写我的c ++代码,因此,我正在尝试避免这样的语句:

if(MIN_VALUE <= a && a <= MAX_VALUE)

并将其替换为类似于以下内容的

if(a in [MIN_VALUE, MAX_VALUE])

2 个答案:

答案 0 :(得分:19)

您可以使用std::clamp,它与大多数STL函数不同,它以封闭时间间隔[lo, hi]返回值:

if (v == std::clamp(v, lo, hi)) {
    // lo <= v && v <= hi.
}

答案 1 :(得分:7)

没有,但是您可以自己构建:

template <typename T>
bool in(const T& a, const T& low, const T& high) 
{ 
    return a - low <= high - low; 
}