将整数限制为边界

Eri*_*ric 2 c++ max min clamp

我试图确保int x大于或等于0但小于1080(在这种情况下是屏幕尺寸).

我想出了这个

int x = 123;
x = std::min(std::max(x, 0), 1080);
Run Code Online (Sandbox Code Playgroud)

这看起来很难看.有没有更好的方法来实现这一目标?

mel*_*ene 8

如果您将来生活,可以使用std::clampC++ 17:

x = std::clamp(x, 0, 1080);
Run Code Online (Sandbox Code Playgroud)