需要确保值在0-255之内

cod*_*ail 2 c++

这可能很容易,但我迷失了如何"确定"它在这个范围内..

所以基本上我们有class Color很多功能可以从中实现.

我需要的这个功能是:

效果:将颜色值更正为0-255(含).如果值超出此范围,则调整为0或255,以较近者为准.

这是我到目前为止:

static int correctValue(int value)
{
    if(value<0)
        value=0;
    if(value>255)
        value=255;
}
Run Code Online (Sandbox Code Playgroud)

对不起这么简单的问题; /

GMa*_*ckG 12

很好.我建议制作一个clamp可重用的功能:

template <typename T>
void clamp(T& pValue, const T& pMin, const T& pMax)
{
    pValue = std::min(std::max(pValue, pMin), pMax);
}

template <typename T>
T clamp_copy(T pValue, const T& pMin, const T& pMax)
{
    clamp(pValue, pMin, pMax);
    return pValue;
}
Run Code Online (Sandbox Code Playgroud)

这给你一个就地和复制clamp:

int i = 50;

j = clamp_copy(i, 0, 10);
k = clamp_copy(i, 100, 1000);
clamp(i, 0, 100);

// i = 50
// j = 10
// k = 100
Run Code Online (Sandbox Code Playgroud)

  • 我想我们应该温柔地对待他.他刚刚开始,让我们不要用泛滥的方式让他失明:) (3认同)
  • @Aran:嗯,这样的功能很简单,可以作为一个很好的起点.:) (2认同)

zs2*_*020 8

很公平.但你错过了最终的回复声明

static int correctValue(int value)
{
    if(value<0) return 0;
    if(value>255) return 255;
    return value;
}
Run Code Online (Sandbox Code Playgroud)